[2026-08-20 16:16:58] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  password authentication failed for user "loyala_user"
connection to server at "127.0.0.1", port 5432 failed: FATAL:  password authentication failed for user "loyala_user" (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyala_db, SQL: select exists (select 1 from pg_class c, pg_namespace n where n.nspname = current_schema() and c.relname = 'migrations' and c.relkind in ('r', 'p') and n.oid = c.relnamespace)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  password authentication failed for user \"loyala_user\"
connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  password authentication failed for user \"loyala_user\" (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyala_db, SQL: select exists (select 1 from pg_class c, pg_namespace n where n.nspname = current_schema() and c.relname = 'migrations' and c.relkind in ('r', 'p') and n.oid = c.relnamespace)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(357): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(374): Illuminate\\Database\\Connection->selectOne()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Schema/Builder.php(176): Illuminate\\Database\\Connection->scalar()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Migrations/DatabaseMigrationRepository.php(185): Illuminate\\Database\\Schema\\Builder->hasTable()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php(758): Illuminate\\Database\\Migrations\\DatabaseMigrationRepository->repositoryExists()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php(164): Illuminate\\Database\\Migrations\\Migrator->repositoryExists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Support/helpers.php(328): Illuminate\\Database\\Console\\Migrations\\MigrateCommand->Illuminate\\Database\\Console\\Migrations\\{closure}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php(164): retry()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php(140): Illuminate\\Database\\Console\\Migrations\\MigrateCommand->repositoryExists()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php(110): Illuminate\\Database\\Console\\Migrations\\MigrateCommand->prepareDatabase()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php(671): Illuminate\\Database\\Console\\Migrations\\MigrateCommand->Illuminate\\Database\\Console\\Migrations\\{closure}()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php(109): Illuminate\\Database\\Migrations\\Migrator->usingConnection()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php(88): Illuminate\\Database\\Console\\Migrations\\MigrateCommand->runMigrations()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Database\\Console\\Migrations\\MigrateCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  password authentication failed for user \"loyala_user\"
connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  password authentication failed for user \"loyala_user\" at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:66)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(66): PDO->__construct()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->Illuminate\\Database\\Connectors\\{closure}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->Illuminate\\Database\\{closure}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(357): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(374): Illuminate\\Database\\Connection->selectOne()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Schema/Builder.php(176): Illuminate\\Database\\Connection->scalar()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Migrations/DatabaseMigrationRepository.php(185): Illuminate\\Database\\Schema\\Builder->hasTable()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php(758): Illuminate\\Database\\Migrations\\DatabaseMigrationRepository->repositoryExists()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php(164): Illuminate\\Database\\Migrations\\Migrator->repositoryExists()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Support/helpers.php(328): Illuminate\\Database\\Console\\Migrations\\MigrateCommand->Illuminate\\Database\\Console\\Migrations\\{closure}()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php(164): retry()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php(140): Illuminate\\Database\\Console\\Migrations\\MigrateCommand->repositoryExists()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php(110): Illuminate\\Database\\Console\\Migrations\\MigrateCommand->prepareDatabase()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php(671): Illuminate\\Database\\Console\\Migrations\\MigrateCommand->Illuminate\\Database\\Console\\Migrations\\{closure}()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php(109): Illuminate\\Database\\Migrations\\Migrator->usingConnection()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php(88): Illuminate\\Database\\Console\\Migrations\\MigrateCommand->runMigrations()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Database\\Console\\Migrations\\MigrateCommand->handle()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#34 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#35 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#38 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#39 {main}
"} 
[2026-08-20 16:27:04] local.INFO: Backfill complete: Created default installment plans for 0 versions.  
[2026-08-20 16:27:04] local.INFO: Backfill complete: Created default installment plans and details for 0 missing versions.  
[2026-08-20 16:27:04] local.INFO: Orphan backfill complete: Fixed 0 versions that had details but no installment plans.  
[2026-08-20 16:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-20 16:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 16:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-20 16:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 16:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-20 16:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 15:45:06","window_to":"2026-08-20 16:45:06"} 
[2026-08-20 16:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-19 16:45:09","page":1} 
[2026-08-20 16:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-20 16:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-20 16:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-20 16:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 16:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-20 16:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 16:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-20 16:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 17:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 16:00:06","window_to":"2026-08-20 17:00:06"} 
[2026-08-20 17:00:06] local.INFO: Staff auto-checkout completed successfully  
[2026-08-20 17:00:10] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 16:00:10","window_to":"2026-08-20 17:00:10"} 
[2026-08-20 17:00:10] local.INFO: Webhook health check completed successfully  
[2026-08-20 17:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-20 17:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-20 16:45:09","page":1} 
[2026-08-20 17:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-20 17:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-20 17:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-20 17:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-20 16:00:12","window_to":"2026-08-20 17:00:12"} 
[2026-08-20 17:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-20 17:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 17:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-20 17:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 17:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-20 17:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 17:14:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 17:14:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 17:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 16:15:06","window_to":"2026-08-20 17:15:06"} 
[2026-08-20 17:15:07] local.INFO: Webhook retries processed successfully  
[2026-08-20 17:15:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 17:15:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 17:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-20 17:00:11","page":1} 
[2026-08-20 17:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-20 17:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-20 17:15:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-20 17:15:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 17:15:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 17:15:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 17:16:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 17:16:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 17:16:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 17:17:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 17:17:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 17:17:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 17:18:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 17:18:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 17:18:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 17:19:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 17:19:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 17:19:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 17:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-20 17:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 17:20:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 17:20:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 17:20:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 17:21:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 17:21:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 17:21:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 17:22:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 17:22:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 17:22:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 17:23:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 17:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-20 17:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 17:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-20 17:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 16:30:06","window_to":"2026-08-20 17:30:06"} 
[2026-08-20 17:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-20 17:15:11","page":1} 
[2026-08-20 17:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-20 17:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-20 17:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-20 17:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 17:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-20 17:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 17:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-20 17:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 17:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 16:45:05","window_to":"2026-08-20 17:45:05"} 
[2026-08-20 17:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-20 17:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-20 17:30:10","page":1} 
[2026-08-20 17:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-20 17:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-20 17:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-20 17:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 17:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-20 17:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 17:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-20 17:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 18:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 17:00:06","window_to":"2026-08-20 18:00:06"} 
[2026-08-20 18:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 17:00:07","window_to":"2026-08-20 18:00:07"} 
[2026-08-20 18:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-20 18:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-20 18:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-20 17:45:08","page":1} 
[2026-08-20 18:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-20 18:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-20 18:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-20 18:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-20 17:00:13","window_to":"2026-08-20 18:00:13"} 
[2026-08-20 18:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-20 18:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 18:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-20 18:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 18:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-20 18:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 18:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 17:15:05","window_to":"2026-08-20 18:15:05"} 
[2026-08-20 18:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-20 18:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-20 18:00:11","page":1} 
[2026-08-20 18:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-20 18:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-20 18:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-20 18:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 18:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-20 18:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 18:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-20 18:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 18:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-20 18:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 17:30:05","window_to":"2026-08-20 18:30:05"} 
[2026-08-20 18:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-20 18:15:08","page":1} 
[2026-08-20 18:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-20 18:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-20 18:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-20 18:30:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 18:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-20 18:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 18:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-20 18:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 18:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-20 18:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 17:45:06","window_to":"2026-08-20 18:45:06"} 
[2026-08-20 18:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-20 18:30:08","page":1} 
[2026-08-20 18:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-20 18:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-20 18:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-20 18:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 18:46:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:46:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:47:04] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:47:06] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:47:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:47:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:48:04] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:48:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:48:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:49:04] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:49:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:49:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:50:04] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-20 18:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 18:50:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:50:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:51:03] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:51:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:51:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:52:04] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:52:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:52:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:53:04] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:53:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:53:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:54:04] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:54:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:54:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:55:04] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-20 18:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 18:55:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:55:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:56:04] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:56:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:56:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:57:04] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:57:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:57:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:58:04] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:58:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:58:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:59:04] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:59:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 18:59:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:00:04] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 18:00:06","window_to":"2026-08-20 19:00:06"} 
[2026-08-20 19:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 18:00:06","window_to":"2026-08-20 19:00:06"} 
[2026-08-20 19:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-20 19:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-20 19:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-20 18:45:09","page":1} 
[2026-08-20 19:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-20 19:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-20 19:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-20 19:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-20 18:00:11","window_to":"2026-08-20 19:00:11"} 
[2026-08-20 19:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-20 19:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 19:00:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:00:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:01:04] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:01:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:01:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:02:04] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:02:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:02:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:03:04] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:03:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:03:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:04:04] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:04:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:04:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:05:04] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-20 19:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 19:05:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:05:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:06:04] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:06:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:06:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:07:04] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:07:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:07:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:08:06] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:08:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:08:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:09:04] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-20 19:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 19:10:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:10:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:11:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:11:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:11:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:11:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:12:05] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:12:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:12:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:13:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:14:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:14:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 18:15:06","window_to":"2026-08-20 19:15:06"} 
[2026-08-20 19:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-20 19:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-20 19:00:10","page":1} 
[2026-08-20 19:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-20 19:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-20 19:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-20 19:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 19:15:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:15:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:16:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:16:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:16:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-20 19:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-20 19:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 19:24:07] local.ERROR: require(/var/www/html/api_loyala_backend/bootstrap/cache/routes-v7.php): Failed to open stream: No such file or directory {"exception":"[object] (ErrorException(code: 0): require(/var/www/html/api_loyala_backend/bootstrap/cache/routes-v7.php): Failed to open stream: No such file or directory at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php:150)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php(262): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php(150): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->Illuminate\\Foundation\\Bootstrap\\{closure}()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php(150): require('...')
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1194): Illuminate\\Foundation\\Support\\Providers\\RouteServiceProvider->Illuminate\\Foundation\\Support\\Providers\\{closure}()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1137): Illuminate\\Foundation\\Application->fireAppCallbacks()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/BootProviders.php(17): Illuminate\\Foundation\\Application->boot()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(342): Illuminate\\Foundation\\Bootstrap\\BootProviders->bootstrap()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(494): Illuminate\\Foundation\\Application->bootstrapWith()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(196): Illuminate\\Foundation\\Console\\Kernel->bootstrap()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#10 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#11 {main}
"} 
[2026-08-20 19:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-20 19:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 19:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 18:30:05","window_to":"2026-08-20 19:30:05"} 
[2026-08-20 19:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-20 19:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-20 19:15:09","page":1} 
[2026-08-20 19:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-20 19:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-20 19:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-20 19:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 19:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-20 19:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 19:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-20 19:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 19:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-20 19:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 18:45:05","window_to":"2026-08-20 19:45:05"} 
[2026-08-20 19:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-20 19:30:08","page":1} 
[2026-08-20 19:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-20 19:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-20 19:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-20 19:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 19:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-20 19:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 19:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-20 19:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 20:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 19:00:06","window_to":"2026-08-20 20:00:06"} 
[2026-08-20 20:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 19:00:06","window_to":"2026-08-20 20:00:06"} 
[2026-08-20 20:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-20 20:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-20 20:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-20 19:45:08","page":1} 
[2026-08-20 20:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-20 20:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-20 20:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-20 20:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-20 19:00:12","window_to":"2026-08-20 20:00:12"} 
[2026-08-20 20:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-20 20:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 20:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-20 20:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 20:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-20 20:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 20:15:04] local.INFO: Webhook retries processed successfully  
[2026-08-20 20:15:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 19:15:04","window_to":"2026-08-20 20:15:04"} 
[2026-08-20 20:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-20 20:00:11","page":1} 
[2026-08-20 20:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-20 20:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-20 20:15:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-20 20:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 20:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-20 20:20:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 20:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-20 20:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 20:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 19:30:05","window_to":"2026-08-20 20:30:05"} 
[2026-08-20 20:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-20 20:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-20 20:15:07","page":1} 
[2026-08-20 20:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-20 20:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-20 20:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-20 20:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 20:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-20 20:35:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 20:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-20 20:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 20:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-20 20:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 19:45:05","window_to":"2026-08-20 20:45:05"} 
[2026-08-20 20:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-20 20:30:08","page":1} 
[2026-08-20 20:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-20 20:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-20 20:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-20 20:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 20:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-20 20:50:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 20:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-20 20:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 21:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 20:00:06","window_to":"2026-08-20 21:00:06"} 
[2026-08-20 21:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 20:00:06","window_to":"2026-08-20 21:00:06"} 
[2026-08-20 21:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-20 21:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-20 21:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-20 20:45:08","page":1} 
[2026-08-20 21:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-20 21:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-20 21:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-20 21:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-20 20:00:12","window_to":"2026-08-20 21:00:12"} 
[2026-08-20 21:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-20 21:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 21:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-20 21:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 21:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-20 21:10:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 21:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 20:15:05","window_to":"2026-08-20 21:15:05"} 
[2026-08-20 21:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-20 21:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-20 21:00:11","page":1} 
[2026-08-20 21:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-20 21:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-20 21:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-20 21:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 21:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-20 21:20:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 21:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-20 21:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 21:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-20 21:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 20:30:05","window_to":"2026-08-20 21:30:05"} 
[2026-08-20 21:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-20 21:15:08","page":1} 
[2026-08-20 21:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-20 21:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-20 21:30:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-20 21:30:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 21:35:03] local.INFO: Webhook retries processed successfully  
[2026-08-20 21:35:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 21:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-20 21:40:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 21:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-20 21:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 20:45:04","window_to":"2026-08-20 21:45:04"} 
[2026-08-20 21:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-20 21:30:07","page":1} 
[2026-08-20 21:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-20 21:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-20 21:45:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-20 21:45:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 21:50:03] local.INFO: Webhook retries processed successfully  
[2026-08-20 21:50:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 21:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-20 21:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 22:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 21:00:04","window_to":"2026-08-20 22:00:05"} 
[2026-08-20 22:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 21:00:05","window_to":"2026-08-20 22:00:05"} 
[2026-08-20 22:00:05] local.INFO: Webhook health check completed successfully  
[2026-08-20 22:00:08] local.INFO: Webhook retries processed successfully  
[2026-08-20 22:00:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-20 21:45:07","page":1} 
[2026-08-20 22:00:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-20 22:00:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-20 22:00:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-20 22:00:09] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-20 21:00:09","window_to":"2026-08-20 22:00:09"} 
[2026-08-20 22:00:09] local.INFO: TikTok webhook health check completed successfully  
[2026-08-20 22:00:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 22:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-20 22:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 22:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-20 22:10:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 22:15:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 21:15:04","window_to":"2026-08-20 22:15:04"} 
[2026-08-20 22:15:04] local.INFO: Webhook retries processed successfully  
[2026-08-20 22:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-20 22:00:08","page":1} 
[2026-08-20 22:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-20 22:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-20 22:15:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-20 22:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 22:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-20 22:20:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 22:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-20 22:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 22:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-20 22:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 21:30:05","window_to":"2026-08-20 22:30:05"} 
[2026-08-20 22:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-20 22:15:07","page":1} 
[2026-08-20 22:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-20 22:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-20 22:30:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-20 22:30:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 22:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-20 22:35:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 22:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-20 22:40:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 22:45:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 21:45:04","window_to":"2026-08-20 22:45:04"} 
[2026-08-20 22:45:04] local.INFO: Webhook retries processed successfully  
[2026-08-20 22:45:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-20 22:30:07","page":1} 
[2026-08-20 22:45:06] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-20 22:45:06] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-20 22:45:06] local.INFO: TikTok lead sync completed successfully  
[2026-08-20 22:45:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 22:50:03] local.INFO: Webhook retries processed successfully  
[2026-08-20 22:50:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 22:55:03] local.INFO: Webhook retries processed successfully  
[2026-08-20 22:55:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 23:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 22:00:05","window_to":"2026-08-20 23:00:05"} 
[2026-08-20 23:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-20 23:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 22:00:06","window_to":"2026-08-20 23:00:06"} 
[2026-08-20 23:00:08] local.INFO: Webhook retries processed successfully  
[2026-08-20 23:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-20 22:45:06","page":1} 
[2026-08-20 23:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-20 23:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-20 23:00:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-20 23:00:10] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-20 22:00:10","window_to":"2026-08-20 23:00:10"} 
[2026-08-20 23:00:10] local.INFO: TikTok webhook health check completed successfully  
[2026-08-20 23:00:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 23:05:03] local.INFO: Webhook retries processed successfully  
[2026-08-20 23:05:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 23:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-20 23:10:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 23:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 22:15:05","window_to":"2026-08-20 23:15:05"} 
[2026-08-20 23:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-20 23:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-20 23:00:09","page":1} 
[2026-08-20 23:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-20 23:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-20 23:15:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-20 23:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 23:20:03] local.INFO: Webhook retries processed successfully  
[2026-08-20 23:20:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 23:25:03] local.INFO: Webhook retries processed successfully  
[2026-08-20 23:25:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 23:30:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 22:30:04","window_to":"2026-08-20 23:30:04"} 
[2026-08-20 23:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-20 23:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-20 23:15:07","page":1} 
[2026-08-20 23:30:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-20 23:30:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-20 23:30:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-20 23:30:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 23:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-20 23:35:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 23:40:03] local.INFO: Webhook retries processed successfully  
[2026-08-20 23:40:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 23:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 22:45:04","window_to":"2026-08-20 23:45:04"} 
[2026-08-20 23:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-20 23:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-20 23:30:07","page":1} 
[2026-08-20 23:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-20 23:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-20 23:45:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-20 23:45:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 23:50:03] local.INFO: Webhook retries processed successfully  
[2026-08-20 23:50:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-20 23:55:03] local.INFO: Webhook retries processed successfully  
[2026-08-20 23:55:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 00:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 23:00:05","window_to":"2026-08-21 00:00:05"} 
[2026-08-21 00:00:05] local.INFO: Commission cleanup completed successfully  
[2026-08-21 00:00:08] local.INFO: Student payment status check completed successfully  
[2026-08-21 00:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 23:00:08","window_to":"2026-08-21 00:00:08"} 
[2026-08-21 00:00:08] local.INFO: Webhook health check completed successfully  
[2026-08-21 00:00:09] local.INFO: Webhook retries processed successfully  
[2026-08-21 00:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-20 23:45:07","page":1} 
[2026-08-21 00:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 00:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 00:00:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 00:00:10] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-20 23:00:10","window_to":"2026-08-21 00:00:10"} 
[2026-08-21 00:00:10] local.INFO: TikTok webhook health check completed successfully  
[2026-08-21 00:00:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 00:00:11] local.INFO: Student payment status check completed successfully  
[2026-08-21 00:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 00:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 00:10:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 00:10:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 00:15:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 23:15:04","window_to":"2026-08-21 00:15:04"} 
[2026-08-21 00:15:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 00:15:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 00:00:09","page":1} 
[2026-08-21 00:15:06] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 00:15:06] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 00:15:06] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 00:15:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 00:20:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 00:20:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 00:25:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 00:25:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 00:30:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 23:30:04","window_to":"2026-08-21 00:30:04"} 
[2026-08-21 00:30:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 00:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 00:15:06","page":1} 
[2026-08-21 00:30:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 00:30:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 00:30:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 00:30:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 00:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 00:35:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 00:40:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 00:40:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 00:45:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-20 23:45:04","window_to":"2026-08-21 00:45:04"} 
[2026-08-21 00:45:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 00:45:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 00:30:07","page":1} 
[2026-08-21 00:45:06] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 00:45:06] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 00:45:06] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 00:45:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 00:50:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 00:50:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 00:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 00:55:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 01:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 00:00:05","window_to":"2026-08-21 01:00:05"} 
[2026-08-21 01:00:05] local.INFO: Webhook health check completed successfully  
[2026-08-21 01:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 00:00:06","window_to":"2026-08-21 01:00:06"} 
[2026-08-21 01:00:08] local.INFO: Webhook retries processed successfully  
[2026-08-21 01:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 00:45:06","page":1} 
[2026-08-21 01:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 01:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 01:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 01:00:10] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-21 00:00:10","window_to":"2026-08-21 01:00:10"} 
[2026-08-21 01:00:10] local.INFO: TikTok webhook health check completed successfully  
[2026-08-21 01:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 01:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 01:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 01:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 01:10:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 01:15:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 01:15:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 00:15:04","window_to":"2026-08-21 01:15:04"} 
[2026-08-21 01:15:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 01:00:09","page":1} 
[2026-08-21 01:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 01:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 01:15:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 01:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 01:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 01:20:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 01:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 01:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 01:30:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 00:30:04","window_to":"2026-08-21 01:30:04"} 
[2026-08-21 01:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 01:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 01:15:06","page":1} 
[2026-08-21 01:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 01:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 01:30:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 01:30:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 01:35:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 01:35:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 01:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 01:40:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 01:45:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 00:45:04","window_to":"2026-08-21 01:45:04"} 
[2026-08-21 01:45:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 01:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 01:30:07","page":1} 
[2026-08-21 01:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 01:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 01:45:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 01:45:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 01:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 01:50:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 01:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 01:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 02:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 01:00:05","window_to":"2026-08-21 02:00:05"} 
[2026-08-21 02:00:05] local.INFO: Webhook health check completed successfully  
[2026-08-21 02:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 01:00:05","window_to":"2026-08-21 02:00:05"} 
[2026-08-21 02:00:08] local.INFO: Webhook retries processed successfully  
[2026-08-21 02:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 01:45:07","page":1} 
[2026-08-21 02:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 02:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 02:00:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 02:00:10] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-21 01:00:10","window_to":"2026-08-21 02:00:10"} 
[2026-08-21 02:00:10] local.INFO: TikTok webhook health check completed successfully  
[2026-08-21 02:00:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 02:05:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 02:05:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 02:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 02:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 02:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 01:15:04","window_to":"2026-08-21 02:15:04"} 
[2026-08-21 02:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 02:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 02:00:09","page":1} 
[2026-08-21 02:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 02:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 02:15:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 02:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 02:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 02:20:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 02:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 02:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 02:30:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 01:30:04","window_to":"2026-08-21 02:30:04"} 
[2026-08-21 02:30:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 02:30:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 02:15:07","page":1} 
[2026-08-21 02:30:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 02:30:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 02:30:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 02:30:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 02:35:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 02:35:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 02:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 02:40:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 02:45:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 02:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 01:45:04","window_to":"2026-08-21 02:45:04"} 
[2026-08-21 02:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 02:30:06","page":1} 
[2026-08-21 02:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 02:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 02:45:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 02:45:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 02:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 02:50:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 02:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 02:55:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 03:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 02:00:06","window_to":"2026-08-21 03:00:06"} 
[2026-08-21 03:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 02:00:06","window_to":"2026-08-21 03:00:06"} 
[2026-08-21 03:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-21 03:00:09] local.INFO: Webhook retries processed successfully  
[2026-08-21 03:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 02:45:07","page":1} 
[2026-08-21 03:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 03:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 03:00:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 03:00:10] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-21 02:00:10","window_to":"2026-08-21 03:00:10"} 
[2026-08-21 03:00:10] local.INFO: TikTok webhook health check completed successfully  
[2026-08-21 03:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 03:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 03:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 03:10:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 03:10:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 03:15:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 02:15:04","window_to":"2026-08-21 03:15:04"} 
[2026-08-21 03:15:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 03:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 03:00:09","page":1} 
[2026-08-21 03:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 03:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 03:15:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 03:15:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 03:20:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 03:20:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 03:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 03:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 03:30:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 02:30:04","window_to":"2026-08-21 03:30:04"} 
[2026-08-21 03:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 03:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 03:15:07","page":1} 
[2026-08-21 03:30:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 03:30:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 03:30:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 03:30:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 03:35:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 03:35:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 03:40:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 03:40:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 03:45:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 02:45:04","window_to":"2026-08-21 03:45:04"} 
[2026-08-21 03:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 03:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 03:30:07","page":1} 
[2026-08-21 03:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 03:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 03:45:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 03:45:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 03:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 03:50:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 03:55:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 03:55:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 04:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 03:00:05","window_to":"2026-08-21 04:00:05"} 
[2026-08-21 04:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 03:00:06","window_to":"2026-08-21 04:00:06"} 
[2026-08-21 04:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-21 04:00:08] local.INFO: Webhook retries processed successfully  
[2026-08-21 04:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 03:45:07","page":1} 
[2026-08-21 04:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 04:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 04:00:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 04:00:10] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-21 03:00:10","window_to":"2026-08-21 04:00:10"} 
[2026-08-21 04:00:10] local.INFO: TikTok webhook health check completed successfully  
[2026-08-21 04:00:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 04:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 04:05:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 04:10:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 04:10:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 04:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 03:15:05","window_to":"2026-08-21 04:15:05"} 
[2026-08-21 04:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 04:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 04:00:09","page":1} 
[2026-08-21 04:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 04:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 04:15:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 04:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 04:20:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 04:20:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 04:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 04:25:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 04:30:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 04:30:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 03:30:04","window_to":"2026-08-21 04:30:04"} 
[2026-08-21 04:30:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 04:15:07","page":1} 
[2026-08-21 04:30:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 04:30:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 04:30:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 04:30:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 04:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 04:35:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 04:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 04:40:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 04:45:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 03:45:04","window_to":"2026-08-21 04:45:04"} 
[2026-08-21 04:45:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 04:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 04:30:06","page":1} 
[2026-08-21 04:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 04:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 04:45:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 04:45:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 04:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 04:50:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 04:55:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 04:55:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 05:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 04:00:05","window_to":"2026-08-21 05:00:05"} 
[2026-08-21 05:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 04:00:05","window_to":"2026-08-21 05:00:05"} 
[2026-08-21 05:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-21 05:00:08] local.INFO: Webhook retries processed successfully  
[2026-08-21 05:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 04:45:07","page":1} 
[2026-08-21 05:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 05:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 05:00:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 05:00:10] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-21 04:00:10","window_to":"2026-08-21 05:00:10"} 
[2026-08-21 05:00:10] local.INFO: TikTok webhook health check completed successfully  
[2026-08-21 05:00:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 05:05:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 05:05:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 05:10:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 05:10:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 05:15:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 05:15:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 04:15:04","window_to":"2026-08-21 05:15:04"} 
[2026-08-21 05:15:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 05:00:09","page":1} 
[2026-08-21 05:15:06] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 05:15:06] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 05:15:06] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 05:15:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 05:20:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 05:20:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 05:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 05:25:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 05:30:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 05:30:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 04:30:04","window_to":"2026-08-21 05:30:04"} 
[2026-08-21 05:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 05:15:06","page":1} 
[2026-08-21 05:30:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 05:30:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 05:30:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 05:30:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 05:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 05:35:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 05:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 05:40:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 05:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 04:45:05","window_to":"2026-08-21 05:45:05"} 
[2026-08-21 05:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 05:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 05:30:07","page":1} 
[2026-08-21 05:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 05:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 05:45:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 05:45:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 05:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 05:50:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 05:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 05:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 06:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 05:00:05","window_to":"2026-08-21 06:00:05"} 
[2026-08-21 06:00:05] local.INFO: Webhook health check completed successfully  
[2026-08-21 06:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 05:00:05","window_to":"2026-08-21 06:00:05"} 
[2026-08-21 06:00:08] local.INFO: Webhook retries processed successfully  
[2026-08-21 06:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 05:45:07","page":1} 
[2026-08-21 06:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 06:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 06:00:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 06:00:09] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-21 05:00:09","window_to":"2026-08-21 06:00:09"} 
[2026-08-21 06:00:09] local.INFO: TikTok webhook health check completed successfully  
[2026-08-21 06:00:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 06:05:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 06:05:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 06:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 06:10:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 06:15:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 06:15:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 05:15:04","window_to":"2026-08-21 06:15:04"} 
[2026-08-21 06:15:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 06:00:09","page":1} 
[2026-08-21 06:15:06] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 06:15:06] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 06:15:06] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 06:15:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 06:20:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 06:20:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 06:25:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 06:25:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 06:30:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 06:30:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 05:30:04","window_to":"2026-08-21 06:30:04"} 
[2026-08-21 06:30:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 06:15:06","page":1} 
[2026-08-21 06:30:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 06:30:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 06:30:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 06:30:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 06:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 06:35:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 06:40:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 06:40:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 06:45:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 05:45:04","window_to":"2026-08-21 06:45:04"} 
[2026-08-21 06:45:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 06:45:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 06:30:06","page":1} 
[2026-08-21 06:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 06:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 06:45:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 06:45:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 06:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 06:50:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 06:55:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 06:55:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 07:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 06:00:05","window_to":"2026-08-21 07:00:05"} 
[2026-08-21 07:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 06:00:05","window_to":"2026-08-21 07:00:05"} 
[2026-08-21 07:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-21 07:00:08] local.INFO: Webhook retries processed successfully  
[2026-08-21 07:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 06:45:06","page":1} 
[2026-08-21 07:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 07:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 07:00:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 07:00:10] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-21 06:00:10","window_to":"2026-08-21 07:00:10"} 
[2026-08-21 07:00:10] local.INFO: TikTok webhook health check completed successfully  
[2026-08-21 07:00:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 07:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 07:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 07:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 07:10:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 07:15:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 07:15:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 06:15:04","window_to":"2026-08-21 07:15:04"} 
[2026-08-21 07:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 07:00:09","page":1} 
[2026-08-21 07:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 07:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 07:15:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 07:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 07:20:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 07:20:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 07:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 07:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 07:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 06:30:04","window_to":"2026-08-21 07:30:04"} 
[2026-08-21 07:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 07:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 07:15:07","page":1} 
[2026-08-21 07:30:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 07:30:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 07:30:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 07:30:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 07:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 07:35:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 07:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 07:40:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 07:45:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 06:45:04","window_to":"2026-08-21 07:45:04"} 
[2026-08-21 07:45:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 07:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 07:30:07","page":1} 
[2026-08-21 07:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 07:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 07:45:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 07:45:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 07:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 07:50:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 07:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 07:55:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 08:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 07:00:05","window_to":"2026-08-21 08:00:05"} 
[2026-08-21 08:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 07:00:05","window_to":"2026-08-21 08:00:05"} 
[2026-08-21 08:00:05] local.INFO: Webhook health check completed successfully  
[2026-08-21 08:00:08] local.INFO: Webhook retries processed successfully  
[2026-08-21 08:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 07:45:07","page":1} 
[2026-08-21 08:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 08:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 08:00:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 08:00:09] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-21 07:00:09","window_to":"2026-08-21 08:00:09"} 
[2026-08-21 08:00:09] local.INFO: TikTok webhook health check completed successfully  
[2026-08-21 08:00:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 08:00:11] local.INFO: Student payment reminder notifications sent successfully  
[2026-08-21 08:05:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 08:05:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 08:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 08:10:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 08:15:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 07:15:04","window_to":"2026-08-21 08:15:04"} 
[2026-08-21 08:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 08:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 08:00:09","page":1} 
[2026-08-21 08:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 08:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 08:15:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 08:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 08:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 08:20:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 08:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 08:25:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 08:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 07:30:04","window_to":"2026-08-21 08:30:04"} 
[2026-08-21 08:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 08:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 08:15:07","page":1} 
[2026-08-21 08:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 08:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 08:30:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 08:30:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 08:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 08:35:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 08:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 08:40:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 08:45:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 07:45:04","window_to":"2026-08-21 08:45:04"} 
[2026-08-21 08:45:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 08:45:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 08:30:07","page":1} 
[2026-08-21 08:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 08:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 08:45:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 08:45:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 08:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 08:50:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 08:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 08:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 09:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 08:00:05","window_to":"2026-08-21 09:00:05"} 
[2026-08-21 09:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 08:00:05","window_to":"2026-08-21 09:00:05"} 
[2026-08-21 09:00:05] local.INFO: Webhook health check completed successfully  
[2026-08-21 09:00:08] local.INFO: Webhook retries processed successfully  
[2026-08-21 09:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 08:45:06","page":1} 
[2026-08-21 09:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 09:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 09:00:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 09:00:10] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-21 08:00:10","window_to":"2026-08-21 09:00:10"} 
[2026-08-21 09:00:10] local.INFO: TikTok webhook health check completed successfully  
[2026-08-21 09:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 09:05:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 09:05:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 09:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 09:10:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 09:15:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 09:15:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 08:15:04","window_to":"2026-08-21 09:15:04"} 
[2026-08-21 09:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 09:00:09","page":1} 
[2026-08-21 09:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 09:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 09:15:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 09:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 09:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 09:20:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 09:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 09:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 09:30:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 08:30:04","window_to":"2026-08-21 09:30:04"} 
[2026-08-21 09:30:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 09:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 09:15:07","page":1} 
[2026-08-21 09:30:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 09:30:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 09:30:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 09:30:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 09:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 09:35:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 09:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 09:40:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 09:45:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 08:45:04","window_to":"2026-08-21 09:45:04"} 
[2026-08-21 09:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 09:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 09:30:07","page":1} 
[2026-08-21 09:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 09:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 09:45:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 09:45:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 09:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 09:50:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 09:55:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 09:55:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 10:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 09:00:05","window_to":"2026-08-21 10:00:05"} 
[2026-08-21 10:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 09:00:05","window_to":"2026-08-21 10:00:05"} 
[2026-08-21 10:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-21 10:00:09] local.INFO: Webhook retries processed successfully  
[2026-08-21 10:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 09:45:07","page":1} 
[2026-08-21 10:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 10:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 10:00:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 10:00:10] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-21 09:00:10","window_to":"2026-08-21 10:00:10"} 
[2026-08-21 10:00:10] local.INFO: TikTok webhook health check completed successfully  
[2026-08-21 10:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 10:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 10:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 10:10:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 10:10:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 10:15:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 10:15:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 09:15:04","window_to":"2026-08-21 10:15:04"} 
[2026-08-21 10:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 10:00:09","page":1} 
[2026-08-21 10:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 10:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 10:15:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 10:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 10:20:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 10:20:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 10:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 10:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 10:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 10:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 09:30:05","window_to":"2026-08-21 10:30:05"} 
[2026-08-21 10:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 10:15:07","page":1} 
[2026-08-21 10:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 10:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 10:30:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 10:30:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 10:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 10:35:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 10:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 10:40:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 10:45:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 10:45:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 09:45:04","window_to":"2026-08-21 10:45:04"} 
[2026-08-21 10:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 10:30:07","page":1} 
[2026-08-21 10:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 10:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 10:45:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 10:45:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 10:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 10:50:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 10:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 10:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 11:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 10:00:06","window_to":"2026-08-21 11:00:06"} 
[2026-08-21 11:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 10:00:06","window_to":"2026-08-21 11:00:06"} 
[2026-08-21 11:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-21 11:00:09] local.INFO: Webhook retries processed successfully  
[2026-08-21 11:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 10:45:07","page":1} 
[2026-08-21 11:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 11:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 11:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 11:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-21 10:00:11","window_to":"2026-08-21 11:00:11"} 
[2026-08-21 11:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-21 11:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 11:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 11:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 11:10:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 11:10:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 11:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 10:15:05","window_to":"2026-08-21 11:15:05"} 
[2026-08-21 11:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 11:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 11:00:10","page":1} 
[2026-08-21 11:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 11:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 11:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 11:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 11:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 11:20:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 11:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 11:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 11:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 10:30:05","window_to":"2026-08-21 11:30:05"} 
[2026-08-21 11:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 11:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 11:15:08","page":1} 
[2026-08-21 11:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 11:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 11:30:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 11:30:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 11:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 11:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 11:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 11:40:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 11:45:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 11:45:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 10:45:04","window_to":"2026-08-21 11:45:04"} 
[2026-08-21 11:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 11:30:08","page":1} 
[2026-08-21 11:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 11:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 11:45:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 11:45:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 11:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 11:50:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 11:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 11:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 12:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 11:00:05","window_to":"2026-08-21 12:00:05"} 
[2026-08-21 12:00:05] local.INFO: Webhook health check completed successfully  
[2026-08-21 12:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 11:00:05","window_to":"2026-08-21 12:00:05"} 
[2026-08-21 12:00:08] local.INFO: Webhook retries processed successfully  
[2026-08-21 12:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 11:45:07","page":1} 
[2026-08-21 12:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 12:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 12:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 12:00:10] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-21 11:00:10","window_to":"2026-08-21 12:00:10"} 
[2026-08-21 12:00:10] local.INFO: TikTok webhook health check completed successfully  
[2026-08-21 12:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 12:05:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 12:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 12:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 12:10:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 12:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 11:15:05","window_to":"2026-08-21 12:15:05"} 
[2026-08-21 12:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 12:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 12:00:09","page":1} 
[2026-08-21 12:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 12:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 12:15:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 12:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 12:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 12:20:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 12:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 12:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 12:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 11:30:05","window_to":"2026-08-21 12:30:05"} 
[2026-08-21 12:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 12:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 12:15:07","page":1} 
[2026-08-21 12:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 12:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 12:30:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 12:30:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 12:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 12:35:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 12:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 12:40:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 12:45:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 12:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 11:45:04","window_to":"2026-08-21 12:45:05"} 
[2026-08-21 12:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 12:30:08","page":1} 
[2026-08-21 12:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 12:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 12:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 12:45:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 12:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 12:50:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 12:55:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 12:55:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 13:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 12:00:05","window_to":"2026-08-21 13:00:05"} 
[2026-08-21 13:00:05] local.INFO: Webhook health check completed successfully  
[2026-08-21 13:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 12:00:05","window_to":"2026-08-21 13:00:05"} 
[2026-08-21 13:00:09] local.INFO: Webhook retries processed successfully  
[2026-08-21 13:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 12:45:07","page":1} 
[2026-08-21 13:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 13:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 13:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 13:00:10] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-21 12:00:10","window_to":"2026-08-21 13:00:10"} 
[2026-08-21 13:00:10] local.INFO: TikTok webhook health check completed successfully  
[2026-08-21 13:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 13:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 13:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 13:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 13:10:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 13:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 13:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 12:15:05","window_to":"2026-08-21 13:15:05"} 
[2026-08-21 13:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 13:00:09","page":1} 
[2026-08-21 13:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 13:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 13:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 13:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 13:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 13:20:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 13:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 13:25:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 13:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 12:30:05","window_to":"2026-08-21 13:30:05"} 
[2026-08-21 13:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 13:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 13:15:07","page":1} 
[2026-08-21 13:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 13:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 13:30:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 13:30:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 13:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 13:35:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 13:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 13:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 13:45:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 13:45:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 12:45:04","window_to":"2026-08-21 13:45:04"} 
[2026-08-21 13:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 13:30:08","page":1} 
[2026-08-21 13:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 13:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 13:45:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 13:45:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 13:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 13:50:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 13:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 13:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 14:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 13:00:05","window_to":"2026-08-21 14:00:05"} 
[2026-08-21 14:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 13:00:06","window_to":"2026-08-21 14:00:06"} 
[2026-08-21 14:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-21 14:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-21 14:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 13:45:07","page":1} 
[2026-08-21 14:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 14:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 14:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 14:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-21 13:00:11","window_to":"2026-08-21 14:00:11"} 
[2026-08-21 14:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-21 14:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 14:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 14:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 14:10:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 14:10:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 14:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 13:15:05","window_to":"2026-08-21 14:15:05"} 
[2026-08-21 14:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 14:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 14:00:10","page":1} 
[2026-08-21 14:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 14:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 14:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 14:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 14:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 14:20:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 14:21:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:21:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:22:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:23:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:23:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:23:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:24:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:24:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:24:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 14:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 14:25:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:25:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:27:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:27:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:27:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:27:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:28:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:28:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:28:38] local.ERROR: File upload failed {"key":"app_short_name_logo"} 
[2026-08-21 14:28:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:28:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:29:21] local.ERROR: File upload failed {"key":"app_short_name_logo"} 
[2026-08-21 14:29:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:29:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:29:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 13:30:05","window_to":"2026-08-21 14:30:05"} 
[2026-08-21 14:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 14:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 14:15:08","page":1} 
[2026-08-21 14:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 14:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 14:30:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 14:30:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 14:30:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:30:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:30:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:31:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:31:55] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:31:55] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:31:57] local.ERROR: File upload failed {"key":"app_short_name_logo"} 
[2026-08-21 14:33:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:33:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 14:35:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 14:35:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:35:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:35:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 14:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 14:41:47] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:41:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:42:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:42:47] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:42:47] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:43:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:43:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:43:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:43:38] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:43:47] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:43:47] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:44:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:44:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:44:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:44:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:44:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:44:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:44:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:44:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:44:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:45:05] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 13:45:06","window_to":"2026-08-21 14:45:06"} 
[2026-08-21 14:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-21 14:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 14:30:08","page":1} 
[2026-08-21 14:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 14:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 14:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 14:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 14:45:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:45:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:45:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:45:43] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:46:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:46:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:46:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:46:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:46:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:47:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:47:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:47:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:47:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:47:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:48:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:48:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:48:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:48:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:48:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:48:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:48:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:49:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:49:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:49:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:49:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:49:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:49:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 14:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 14:50:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:50:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:50:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:50:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:50:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:51:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:51:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:51:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:51:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:51:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:52:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:52:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:52:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:52:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:52:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:53:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:53:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:53:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:53:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:53:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:54:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:54:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:54:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:54:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:54:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 14:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 14:55:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:55:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:55:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:55:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:55:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:56:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:56:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:56:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:56:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:56:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:57:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:57:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:57:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:57:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:57:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:58:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:58:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:58:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:58:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:58:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:59:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:59:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:59:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:59:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 14:59:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 14:00:05","window_to":"2026-08-21 15:00:05"} 
[2026-08-21 15:00:05] local.INFO: Webhook health check completed successfully  
[2026-08-21 15:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 14:00:05","window_to":"2026-08-21 15:00:05"} 
[2026-08-21 15:00:08] local.INFO: Webhook retries processed successfully  
[2026-08-21 15:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 14:45:09","page":1} 
[2026-08-21 15:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 15:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 15:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 15:00:10] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-21 14:00:10","window_to":"2026-08-21 15:00:10"} 
[2026-08-21 15:00:10] local.INFO: TikTok webhook health check completed successfully  
[2026-08-21 15:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 15:00:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:00:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:00:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:01:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:01:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:01:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:01:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:02:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:02:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:02:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:02:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:03:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:03:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:03:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:03:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:04:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:04:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:04:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:04:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 15:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 15:05:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:05:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:05:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:05:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:06:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:06:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:06:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:06:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:07:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:07:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:07:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:07:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:08:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:08:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:08:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:08:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:08:43] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:09:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:09:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:09:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 15:10:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 15:10:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:10:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:10:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:10:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:11:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:11:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:11:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:11:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:12:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:12:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:12:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:12:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:13:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:13:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:13:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:13:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:14:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:14:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:14:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:14:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 14:15:05","window_to":"2026-08-21 15:15:05"} 
[2026-08-21 15:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 15:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 15:00:09","page":1} 
[2026-08-21 15:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 15:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 15:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 15:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 15:15:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:15:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:15:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:15:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:16:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:16:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:16:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:16:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:17:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:17:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:17:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:17:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:17:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:18:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:18:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-21 15:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 15:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 15:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 15:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 15:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 14:30:05","window_to":"2026-08-21 15:30:05"} 
[2026-08-21 15:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-21 15:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 15:15:08","page":1} 
[2026-08-21 15:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 15:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 15:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 15:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 15:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 15:35:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 15:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 15:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 15:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 14:45:04","window_to":"2026-08-21 15:45:04"} 
[2026-08-21 15:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 15:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 15:30:09","page":1} 
[2026-08-21 15:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 15:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 15:45:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 15:45:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 15:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 15:50:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 15:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 15:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 16:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 15:00:05","window_to":"2026-08-21 16:00:05"} 
[2026-08-21 16:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 15:00:05","window_to":"2026-08-21 16:00:05"} 
[2026-08-21 16:00:05] local.INFO: Webhook health check completed successfully  
[2026-08-21 16:00:08] local.INFO: Webhook retries processed successfully  
[2026-08-21 16:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 15:45:07","page":1} 
[2026-08-21 16:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 16:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 16:00:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 16:00:10] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-21 15:00:10","window_to":"2026-08-21 16:00:10"} 
[2026-08-21 16:00:10] local.INFO: TikTok webhook health check completed successfully  
[2026-08-21 16:00:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 16:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 16:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 16:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 16:10:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 16:15:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 16:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 15:15:04","window_to":"2026-08-21 16:15:04"} 
[2026-08-21 16:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 16:00:09","page":1} 
[2026-08-21 16:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 16:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 16:15:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 16:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 16:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 16:20:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 16:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 16:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 16:30:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 16:30:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 15:30:04","window_to":"2026-08-21 16:30:04"} 
[2026-08-21 16:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 16:15:07","page":1} 
[2026-08-21 16:30:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 16:30:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 16:30:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 16:30:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 16:35:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 16:35:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 16:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 16:40:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 16:45:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 16:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 15:45:05","window_to":"2026-08-21 16:45:05"} 
[2026-08-21 16:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 16:30:06","page":1} 
[2026-08-21 16:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 16:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 16:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 16:45:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 16:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 16:50:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 16:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 16:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 17:00:06] local.INFO: Staff auto-checkout completed successfully  
[2026-08-21 17:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 16:00:06","window_to":"2026-08-21 17:00:06"} 
[2026-08-21 17:00:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 16:00:09","window_to":"2026-08-21 17:00:09"} 
[2026-08-21 17:00:09] local.INFO: Webhook health check completed successfully  
[2026-08-21 17:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-21 17:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 16:45:07","page":1} 
[2026-08-21 17:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 17:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 17:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 17:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-21 16:00:11","window_to":"2026-08-21 17:00:11"} 
[2026-08-21 17:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-21 17:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 17:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 17:05:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 17:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 17:10:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 17:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 17:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 16:15:05","window_to":"2026-08-21 17:15:05"} 
[2026-08-21 17:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 17:00:10","page":1} 
[2026-08-21 17:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 17:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 17:15:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 17:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 17:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 17:20:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 17:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 17:25:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 17:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 16:30:04","window_to":"2026-08-21 17:30:04"} 
[2026-08-21 17:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 17:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 17:15:07","page":1} 
[2026-08-21 17:30:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 17:30:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 17:30:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 17:30:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 17:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 17:35:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 17:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 17:40:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 17:45:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 16:45:04","window_to":"2026-08-21 17:45:04"} 
[2026-08-21 17:45:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 17:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 17:30:07","page":1} 
[2026-08-21 17:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 17:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 17:45:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 17:45:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 17:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 17:50:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 17:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 17:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 18:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 17:00:05","window_to":"2026-08-21 18:00:05"} 
[2026-08-21 18:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 17:00:05","window_to":"2026-08-21 18:00:05"} 
[2026-08-21 18:00:05] local.INFO: Webhook health check completed successfully  
[2026-08-21 18:00:08] local.INFO: Webhook retries processed successfully  
[2026-08-21 18:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 17:45:07","page":1} 
[2026-08-21 18:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 18:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 18:00:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 18:00:10] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-21 17:00:10","window_to":"2026-08-21 18:00:10"} 
[2026-08-21 18:00:10] local.INFO: TikTok webhook health check completed successfully  
[2026-08-21 18:00:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 18:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 18:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 18:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 18:10:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 18:15:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 17:15:04","window_to":"2026-08-21 18:15:04"} 
[2026-08-21 18:15:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 18:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 18:00:09","page":1} 
[2026-08-21 18:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 18:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 18:15:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 18:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 18:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 18:20:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 18:25:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 18:25:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 18:30:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 17:30:04","window_to":"2026-08-21 18:30:04"} 
[2026-08-21 18:30:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 18:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 18:15:07","page":1} 
[2026-08-21 18:30:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 18:30:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 18:30:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 18:30:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 18:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 18:35:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 18:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 18:40:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 18:45:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 17:45:04","window_to":"2026-08-21 18:45:04"} 
[2026-08-21 18:45:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 18:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 18:30:07","page":1} 
[2026-08-21 18:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 18:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 18:45:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 18:45:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 18:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 18:50:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 18:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 18:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 19:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 18:00:06","window_to":"2026-08-21 19:00:06"} 
[2026-08-21 19:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 18:00:06","window_to":"2026-08-21 19:00:06"} 
[2026-08-21 19:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-21 19:00:09] local.INFO: Webhook retries processed successfully  
[2026-08-21 19:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 18:45:07","page":1} 
[2026-08-21 19:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 19:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 19:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 19:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-21 18:00:11","window_to":"2026-08-21 19:00:11"} 
[2026-08-21 19:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-21 19:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 19:05:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 19:05:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 19:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 19:10:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 19:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 19:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 18:15:05","window_to":"2026-08-21 19:15:05"} 
[2026-08-21 19:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 19:00:10","page":1} 
[2026-08-21 19:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 19:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 19:15:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 19:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 19:20:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 19:20:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 19:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 19:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 19:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 18:30:06","window_to":"2026-08-21 19:30:06"} 
[2026-08-21 19:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-21 19:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 19:15:07","page":1} 
[2026-08-21 19:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 19:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 19:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 19:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 19:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 19:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 19:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 19:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 19:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 19:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 18:45:05","window_to":"2026-08-21 19:45:05"} 
[2026-08-21 19:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 19:30:10","page":1} 
[2026-08-21 19:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 19:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 19:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 19:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 19:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 19:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 19:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 19:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 20:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 19:00:06","window_to":"2026-08-21 20:00:06"} 
[2026-08-21 20:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 19:00:06","window_to":"2026-08-21 20:00:06"} 
[2026-08-21 20:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-21 20:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-21 20:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 19:45:08","page":1} 
[2026-08-21 20:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 20:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 20:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 20:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-21 19:00:11","window_to":"2026-08-21 20:00:11"} 
[2026-08-21 20:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-21 20:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 20:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 20:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 20:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 20:10:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 20:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 19:15:05","window_to":"2026-08-21 20:15:05"} 
[2026-08-21 20:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 20:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 20:00:10","page":1} 
[2026-08-21 20:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 20:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 20:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 20:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 20:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 20:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 20:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 20:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 20:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 20:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 19:30:05","window_to":"2026-08-21 20:30:05"} 
[2026-08-21 20:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 20:15:08","page":1} 
[2026-08-21 20:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 20:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 20:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 20:30:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 20:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 20:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 20:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 20:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 20:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 19:45:05","window_to":"2026-08-21 20:45:05"} 
[2026-08-21 20:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-21 20:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 20:30:08","page":1} 
[2026-08-21 20:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 20:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 20:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 20:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 20:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 20:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 20:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 20:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 21:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 20:00:06","window_to":"2026-08-21 21:00:06"} 
[2026-08-21 21:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 20:00:06","window_to":"2026-08-21 21:00:06"} 
[2026-08-21 21:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-21 21:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-21 21:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 20:45:09","page":1} 
[2026-08-21 21:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 21:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 21:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 21:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-21 20:00:11","window_to":"2026-08-21 21:00:11"} 
[2026-08-21 21:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-21 21:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 21:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 21:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 21:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 21:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 21:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 20:15:05","window_to":"2026-08-21 21:15:05"} 
[2026-08-21 21:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 21:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 21:00:11","page":1} 
[2026-08-21 21:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 21:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 21:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 21:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 21:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 21:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 21:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 21:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 21:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 21:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 20:30:05","window_to":"2026-08-21 21:30:05"} 
[2026-08-21 21:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 21:15:08","page":1} 
[2026-08-21 21:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 21:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 21:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 21:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 21:35:03] local.INFO: Webhook retries processed successfully  
[2026-08-21 21:35:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 21:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 21:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 21:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 20:45:05","window_to":"2026-08-21 21:45:05"} 
[2026-08-21 21:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 21:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 21:30:08","page":1} 
[2026-08-21 21:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 21:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 21:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 21:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 21:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 21:50:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 21:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 21:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 22:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 21:00:05","window_to":"2026-08-21 22:00:05"} 
[2026-08-21 22:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 21:00:05","window_to":"2026-08-21 22:00:05"} 
[2026-08-21 22:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-21 22:00:09] local.INFO: Webhook retries processed successfully  
[2026-08-21 22:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 21:45:08","page":1} 
[2026-08-21 22:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 22:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 22:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 22:00:10] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-21 21:00:10","window_to":"2026-08-21 22:00:10"} 
[2026-08-21 22:00:10] local.INFO: TikTok webhook health check completed successfully  
[2026-08-21 22:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 22:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 22:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 22:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 22:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 22:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 21:15:05","window_to":"2026-08-21 22:15:05"} 
[2026-08-21 22:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 22:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 22:00:10","page":1} 
[2026-08-21 22:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 22:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 22:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 22:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 22:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 22:20:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 22:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 22:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 22:30:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 21:30:04","window_to":"2026-08-21 22:30:04"} 
[2026-08-21 22:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 22:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 22:15:08","page":1} 
[2026-08-21 22:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 22:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 22:30:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 22:30:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 22:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 22:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 22:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 22:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 22:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-21 22:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 21:45:06","window_to":"2026-08-21 22:45:06"} 
[2026-08-21 22:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 22:30:08","page":1} 
[2026-08-21 22:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 22:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 22:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 22:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 22:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 22:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 22:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 22:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 23:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 22:00:06","window_to":"2026-08-21 23:00:06"} 
[2026-08-21 23:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-21 23:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 22:00:07","window_to":"2026-08-21 23:00:07"} 
[2026-08-21 23:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-21 23:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 22:45:09","page":1} 
[2026-08-21 23:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 23:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 23:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 23:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-21 22:00:12","window_to":"2026-08-21 23:00:12"} 
[2026-08-21 23:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-21 23:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 23:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 23:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 23:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 23:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 23:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 22:15:05","window_to":"2026-08-21 23:15:05"} 
[2026-08-21 23:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 23:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 23:00:11","page":1} 
[2026-08-21 23:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 23:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 23:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 23:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 23:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 23:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 23:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 23:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 23:30:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 22:30:04","window_to":"2026-08-21 23:30:04"} 
[2026-08-21 23:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 23:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 23:15:08","page":1} 
[2026-08-21 23:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 23:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 23:30:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 23:30:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 23:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 23:35:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 23:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 23:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 23:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 22:45:05","window_to":"2026-08-21 23:45:05"} 
[2026-08-21 23:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-21 23:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 23:30:08","page":1} 
[2026-08-21 23:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-21 23:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-21 23:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-21 23:45:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 23:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 23:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-21 23:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-21 23:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 00:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 23:00:07","window_to":"2026-08-22 00:00:07"} 
[2026-08-22 00:00:07] local.INFO: Commission cleanup completed successfully  
[2026-08-22 00:00:11] local.INFO: Student payment status check completed successfully  
[2026-08-22 00:00:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 23:00:11","window_to":"2026-08-22 00:00:11"} 
[2026-08-22 00:00:11] local.INFO: Webhook health check completed successfully  
[2026-08-22 00:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-22 00:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-21 23:45:08","page":1} 
[2026-08-22 00:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 00:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 00:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 00:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-21 23:00:13","window_to":"2026-08-22 00:00:13"} 
[2026-08-22 00:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-22 00:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 00:00:15] local.INFO: Student payment status check completed successfully  
[2026-08-22 00:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 00:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 00:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 00:10:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 00:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 23:15:04","window_to":"2026-08-22 00:15:04"} 
[2026-08-22 00:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-22 00:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 00:00:12","page":1} 
[2026-08-22 00:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 00:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 00:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 00:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 00:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 00:20:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 00:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 00:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 00:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 23:30:06","window_to":"2026-08-22 00:30:07"} 
[2026-08-22 00:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-22 00:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 00:15:08","page":1} 
[2026-08-22 00:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 00:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 00:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 00:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 00:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-22 00:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 00:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-22 00:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 00:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-21 23:45:05","window_to":"2026-08-22 00:45:05"} 
[2026-08-22 00:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-22 00:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 00:30:10","page":1} 
[2026-08-22 00:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 00:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 00:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 00:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 00:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-22 00:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 00:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 00:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 01:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 00:00:06","window_to":"2026-08-22 01:00:06"} 
[2026-08-22 01:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 00:00:06","window_to":"2026-08-22 01:00:06"} 
[2026-08-22 01:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-22 01:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-22 01:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 00:45:08","page":1} 
[2026-08-22 01:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 01:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 01:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 01:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-22 00:00:11","window_to":"2026-08-22 01:00:11"} 
[2026-08-22 01:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-22 01:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 01:05:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 01:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 01:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 01:10:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 01:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 00:15:05","window_to":"2026-08-22 01:15:05"} 
[2026-08-22 01:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-22 01:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 01:00:11","page":1} 
[2026-08-22 01:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 01:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 01:15:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 01:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 01:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 01:20:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 01:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 01:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 01:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 00:30:06","window_to":"2026-08-22 01:30:06"} 
[2026-08-22 01:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-22 01:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 01:15:07","page":1} 
[2026-08-22 01:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 01:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 01:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 01:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 01:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 01:35:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 01:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-22 01:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 01:45:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 00:45:04","window_to":"2026-08-22 01:45:04"} 
[2026-08-22 01:45:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 01:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 01:30:09","page":1} 
[2026-08-22 01:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 01:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 01:45:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 01:45:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 01:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 01:50:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 01:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 01:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 02:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 01:00:06","window_to":"2026-08-22 02:00:06"} 
[2026-08-22 02:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 01:00:06","window_to":"2026-08-22 02:00:06"} 
[2026-08-22 02:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-22 02:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-22 02:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 01:45:07","page":1} 
[2026-08-22 02:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 02:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 02:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 02:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-22 01:00:11","window_to":"2026-08-22 02:00:11"} 
[2026-08-22 02:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-22 02:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 02:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-22 02:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 02:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-22 02:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 02:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 01:15:05","window_to":"2026-08-22 02:15:05"} 
[2026-08-22 02:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-22 02:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 02:00:11","page":1} 
[2026-08-22 02:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 02:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 02:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 02:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 02:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 02:20:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 02:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 02:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 02:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 01:30:05","window_to":"2026-08-22 02:30:05"} 
[2026-08-22 02:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-22 02:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 02:15:08","page":1} 
[2026-08-22 02:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 02:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 02:30:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 02:30:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 02:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-22 02:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 02:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-22 02:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 02:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-22 02:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 01:45:05","window_to":"2026-08-22 02:45:05"} 
[2026-08-22 02:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 02:30:08","page":1} 
[2026-08-22 02:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 02:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 02:45:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 02:45:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 02:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 02:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 02:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 02:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 03:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 02:00:05","window_to":"2026-08-22 03:00:05"} 
[2026-08-22 03:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 02:00:06","window_to":"2026-08-22 03:00:06"} 
[2026-08-22 03:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-22 03:00:09] local.INFO: Webhook retries processed successfully  
[2026-08-22 03:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 02:45:07","page":1} 
[2026-08-22 03:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 03:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 03:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 03:00:10] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-22 02:00:10","window_to":"2026-08-22 03:00:10"} 
[2026-08-22 03:00:10] local.INFO: TikTok webhook health check completed successfully  
[2026-08-22 03:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 03:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 03:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 03:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 03:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 03:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 02:15:05","window_to":"2026-08-22 03:15:05"} 
[2026-08-22 03:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-22 03:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 03:00:10","page":1} 
[2026-08-22 03:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 03:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 03:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 03:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 03:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 03:20:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 03:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 03:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 03:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-22 03:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 02:30:05","window_to":"2026-08-22 03:30:05"} 
[2026-08-22 03:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 03:15:08","page":1} 
[2026-08-22 03:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 03:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 03:30:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 03:30:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 03:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-22 03:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 03:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 03:40:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 03:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 02:45:05","window_to":"2026-08-22 03:45:05"} 
[2026-08-22 03:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-22 03:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 03:30:07","page":1} 
[2026-08-22 03:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 03:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 03:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 03:45:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 03:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-22 03:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 03:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 03:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 04:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 03:00:05","window_to":"2026-08-22 04:00:05"} 
[2026-08-22 04:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 03:00:05","window_to":"2026-08-22 04:00:05"} 
[2026-08-22 04:00:05] local.INFO: Webhook health check completed successfully  
[2026-08-22 04:00:08] local.INFO: Webhook retries processed successfully  
[2026-08-22 04:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 03:45:07","page":1} 
[2026-08-22 04:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 04:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 04:00:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 04:00:10] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-22 03:00:10","window_to":"2026-08-22 04:00:10"} 
[2026-08-22 04:00:10] local.INFO: TikTok webhook health check completed successfully  
[2026-08-22 04:00:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 04:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 04:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 04:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 04:10:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 04:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 03:15:05","window_to":"2026-08-22 04:15:05"} 
[2026-08-22 04:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-22 04:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 04:00:09","page":1} 
[2026-08-22 04:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 04:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 04:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 04:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 04:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 04:20:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 04:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 04:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 04:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-22 04:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 03:30:04","window_to":"2026-08-22 04:30:04"} 
[2026-08-22 04:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 04:15:08","page":1} 
[2026-08-22 04:30:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 04:30:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 04:30:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 04:30:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 04:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 04:35:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 04:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 04:40:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 04:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-22 04:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 03:45:05","window_to":"2026-08-22 04:45:05"} 
[2026-08-22 04:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 04:30:07","page":1} 
[2026-08-22 04:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 04:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 04:45:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 04:45:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 04:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 04:50:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 04:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 04:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 05:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 04:00:05","window_to":"2026-08-22 05:00:05"} 
[2026-08-22 05:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 04:00:05","window_to":"2026-08-22 05:00:05"} 
[2026-08-22 05:00:05] local.INFO: Webhook health check completed successfully  
[2026-08-22 05:00:08] local.INFO: Webhook retries processed successfully  
[2026-08-22 05:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 04:45:07","page":1} 
[2026-08-22 05:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 05:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 05:00:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 05:00:10] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-22 04:00:10","window_to":"2026-08-22 05:00:10"} 
[2026-08-22 05:00:10] local.INFO: TikTok webhook health check completed successfully  
[2026-08-22 05:00:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 05:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 05:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 05:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-22 05:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 05:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 04:15:05","window_to":"2026-08-22 05:15:05"} 
[2026-08-22 05:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-22 05:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 05:00:09","page":1} 
[2026-08-22 05:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 05:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 05:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 05:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 05:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 05:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 05:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 05:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 05:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 04:30:05","window_to":"2026-08-22 05:30:05"} 
[2026-08-22 05:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-22 05:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 05:15:08","page":1} 
[2026-08-22 05:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 05:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 05:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 05:30:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 05:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-22 05:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 05:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-22 05:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 05:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-22 05:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 04:45:05","window_to":"2026-08-22 05:45:05"} 
[2026-08-22 05:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 05:30:08","page":1} 
[2026-08-22 05:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 05:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 05:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 05:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 05:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 05:50:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 05:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 05:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 06:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 05:00:06","window_to":"2026-08-22 06:00:06"} 
[2026-08-22 06:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 05:00:06","window_to":"2026-08-22 06:00:06"} 
[2026-08-22 06:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-22 06:00:09] local.INFO: Webhook retries processed successfully  
[2026-08-22 06:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 05:45:08","page":1} 
[2026-08-22 06:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 06:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 06:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 06:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-22 05:00:11","window_to":"2026-08-22 06:00:11"} 
[2026-08-22 06:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-22 06:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 06:01:07] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: delete from "cache_locks" where "key" = ims_academy_cache_framework/schedule-aa7710bbd4d0faab1a3be95622d946326a1d9ba2) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: delete from \"cache_locks\" where \"key\" = ims_academy_cache_framework/schedule-aa7710bbd4d0faab1a3be95622d946326a1d9ba2) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(999): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(978): Illuminate\\Database\\Connection->tryAgainIfCausedByLostConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(796): Illuminate\\Database\\Connection->handleQueryException()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(561): Illuminate\\Database\\Connection->affectingStatement()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4426): Illuminate\\Database\\Connection->delete()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(169): Illuminate\\Database\\Query\\Builder->delete()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(82): Illuminate\\Cache\\DatabaseLock->forceRelease()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(842): Illuminate\\Console\\Scheduling\\CacheEventMutex->forget()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(226): Illuminate\\Console\\Scheduling\\Event->removeMutex()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(46): Illuminate\\Console\\Scheduling\\Event->finish()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php(275): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->Illuminate\\Console\\Scheduling\\{closure}()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(45): Illuminate\\Support\\Collection->each()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->handle()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#19 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#22 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#26 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#27 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:66)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(66): PDO->__construct()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->Illuminate\\Database\\Connectors\\{closure}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->Illuminate\\Database\\{closure}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(999): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(978): Illuminate\\Database\\Connection->tryAgainIfCausedByLostConnection()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(796): Illuminate\\Database\\Connection->handleQueryException()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(561): Illuminate\\Database\\Connection->affectingStatement()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4426): Illuminate\\Database\\Connection->delete()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(169): Illuminate\\Database\\Query\\Builder->delete()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(82): Illuminate\\Cache\\DatabaseLock->forceRelease()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(842): Illuminate\\Console\\Scheduling\\CacheEventMutex->forget()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(226): Illuminate\\Console\\Scheduling\\Event->removeMutex()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(46): Illuminate\\Console\\Scheduling\\Event->finish()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php(275): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->Illuminate\\Console\\Scheduling\\{closure}()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(45): Illuminate\\Support\\Collection->each()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->handle()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#27 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#30 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#34 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#35 {main}
"} 
[2026-08-22 06:01:07] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: delete from "cache_locks" where "key" = ims_academy_cache_framework/schedule-55a62890f210706c33a18839cce8bf1bdc604e0e) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: delete from \"cache_locks\" where \"key\" = ims_academy_cache_framework/schedule-55a62890f210706c33a18839cce8bf1bdc604e0e) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(999): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(978): Illuminate\\Database\\Connection->tryAgainIfCausedByLostConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(796): Illuminate\\Database\\Connection->handleQueryException()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(561): Illuminate\\Database\\Connection->affectingStatement()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4426): Illuminate\\Database\\Connection->delete()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(169): Illuminate\\Database\\Query\\Builder->delete()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(82): Illuminate\\Cache\\DatabaseLock->forceRelease()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(842): Illuminate\\Console\\Scheduling\\CacheEventMutex->forget()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(226): Illuminate\\Console\\Scheduling\\Event->removeMutex()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(46): Illuminate\\Console\\Scheduling\\Event->finish()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php(275): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->Illuminate\\Console\\Scheduling\\{closure}()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(45): Illuminate\\Support\\Collection->each()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->handle()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#19 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#22 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#26 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#27 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:66)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(66): PDO->__construct()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->Illuminate\\Database\\Connectors\\{closure}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->Illuminate\\Database\\{closure}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(999): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(978): Illuminate\\Database\\Connection->tryAgainIfCausedByLostConnection()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(796): Illuminate\\Database\\Connection->handleQueryException()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(561): Illuminate\\Database\\Connection->affectingStatement()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4426): Illuminate\\Database\\Connection->delete()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(169): Illuminate\\Database\\Query\\Builder->delete()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(82): Illuminate\\Cache\\DatabaseLock->forceRelease()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(842): Illuminate\\Console\\Scheduling\\CacheEventMutex->forget()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(226): Illuminate\\Console\\Scheduling\\Event->removeMutex()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(46): Illuminate\\Console\\Scheduling\\Event->finish()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php(275): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->Illuminate\\Console\\Scheduling\\{closure}()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(45): Illuminate\\Support\\Collection->each()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->handle()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#27 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#30 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#34 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#35 {main}
"} 
[2026-08-22 06:01:07] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: delete from "cache_locks" where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: delete from \"cache_locks\" where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(999): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(978): Illuminate\\Database\\Connection->tryAgainIfCausedByLostConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(796): Illuminate\\Database\\Connection->handleQueryException()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(561): Illuminate\\Database\\Connection->affectingStatement()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4426): Illuminate\\Database\\Connection->delete()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(169): Illuminate\\Database\\Query\\Builder->delete()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(82): Illuminate\\Cache\\DatabaseLock->forceRelease()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(842): Illuminate\\Console\\Scheduling\\CacheEventMutex->forget()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(226): Illuminate\\Console\\Scheduling\\Event->removeMutex()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(46): Illuminate\\Console\\Scheduling\\Event->finish()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php(275): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->Illuminate\\Console\\Scheduling\\{closure}()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(45): Illuminate\\Support\\Collection->each()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->handle()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#19 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#22 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#26 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#27 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:66)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(66): PDO->__construct()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->Illuminate\\Database\\Connectors\\{closure}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->Illuminate\\Database\\{closure}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(999): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(978): Illuminate\\Database\\Connection->tryAgainIfCausedByLostConnection()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(796): Illuminate\\Database\\Connection->handleQueryException()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(561): Illuminate\\Database\\Connection->affectingStatement()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4426): Illuminate\\Database\\Connection->delete()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(169): Illuminate\\Database\\Query\\Builder->delete()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(82): Illuminate\\Cache\\DatabaseLock->forceRelease()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(842): Illuminate\\Console\\Scheduling\\CacheEventMutex->forget()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(226): Illuminate\\Console\\Scheduling\\Event->removeMutex()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(46): Illuminate\\Console\\Scheduling\\Event->finish()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php(275): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->Illuminate\\Console\\Scheduling\\{closure}()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(45): Illuminate\\Support\\Collection->each()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->handle()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#27 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#30 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#34 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#35 {main}
"} 
[2026-08-22 06:01:08] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cache" where "key" in (ims_academy_cache_illuminate:queue:restart)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_illuminate:queue:restart)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(999): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(978): Illuminate\\Database\\Connection->tryAgainIfCausedByLostConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(796): Illuminate\\Database\\Connection->handleQueryException()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3505): Illuminate\\Database\\Connection->select()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3490): Illuminate\\Database\\Query\\Builder->runSelect()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4080): Illuminate\\Database\\Query\\Builder->Illuminate\\Database\\Query\\{closure}()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3489): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(800): Illuminate\\Cache\\Repository->get()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(785): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(350): Illuminate\\Queue\\Worker->queueShouldRestart()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(230): Illuminate\\Queue\\Worker->stopIfNecessary()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(149): Illuminate\\Queue\\Worker->daemon()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(132): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#26 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#27 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#30 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#31 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:66)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(66): PDO->__construct()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->Illuminate\\Database\\Connectors\\{closure}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->Illuminate\\Database\\{closure}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(999): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(978): Illuminate\\Database\\Connection->tryAgainIfCausedByLostConnection()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(796): Illuminate\\Database\\Connection->handleQueryException()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3505): Illuminate\\Database\\Connection->select()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3490): Illuminate\\Database\\Query\\Builder->runSelect()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4080): Illuminate\\Database\\Query\\Builder->Illuminate\\Database\\Query\\{closure}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3489): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(800): Illuminate\\Cache\\Repository->get()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(785): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(350): Illuminate\\Queue\\Worker->queueShouldRestart()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(230): Illuminate\\Queue\\Worker->stopIfNecessary()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(149): Illuminate\\Queue\\Worker->daemon()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(132): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#35 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#36 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#37 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#40 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#41 {main}
"} 
[2026-08-22 06:01:10] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cache" where "key" in (ims_academy_cache_illuminate:queue:restart)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_illuminate:queue:restart)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3505): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3490): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4080): Illuminate\\Database\\Query\\Builder->Illuminate\\Database\\Query\\{closure}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3489): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(800): Illuminate\\Cache\\Repository->get()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(167): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(149): Illuminate\\Queue\\Worker->daemon()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(132): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#19 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#22 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#26 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#27 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:66)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(66): PDO->__construct()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->Illuminate\\Database\\Connectors\\{closure}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->Illuminate\\Database\\{closure}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3505): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3490): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4080): Illuminate\\Database\\Query\\Builder->Illuminate\\Database\\Query\\{closure}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3489): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(800): Illuminate\\Cache\\Repository->get()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(167): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(149): Illuminate\\Queue\\Worker->daemon()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(132): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-08-22 06:05:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 06:05:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 06:10:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 06:10:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 06:15:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 06:15:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 05:15:03","window_to":"2026-08-22 06:15:03"} 
[2026-08-22 06:15:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 06:00:10","page":1} 
[2026-08-22 06:15:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 06:15:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 06:15:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 06:15:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 06:20:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 06:20:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 06:25:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 06:25:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 06:30:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 06:30:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 05:30:03","window_to":"2026-08-22 06:30:03"} 
[2026-08-22 06:30:04] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 06:15:05","page":1} 
[2026-08-22 06:30:04] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 06:30:04] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 06:30:04] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 06:30:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 06:35:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 06:35:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 06:40:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 06:40:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 06:45:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 05:45:03","window_to":"2026-08-22 06:45:03"} 
[2026-08-22 06:45:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 06:45:04] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 06:30:04","page":1} 
[2026-08-22 06:45:04] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 06:45:04] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 06:45:04] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 06:45:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 06:50:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 06:50:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 06:55:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 06:55:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 07:00:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 06:00:04","window_to":"2026-08-22 07:00:04"} 
[2026-08-22 07:00:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 06:00:04","window_to":"2026-08-22 07:00:04"} 
[2026-08-22 07:00:05] local.INFO: Webhook health check completed successfully  
[2026-08-22 07:00:06] local.INFO: Webhook retries processed successfully  
[2026-08-22 07:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 06:45:04","page":1} 
[2026-08-22 07:00:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 07:00:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 07:00:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 07:00:08] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-22 06:00:08","window_to":"2026-08-22 07:00:08"} 
[2026-08-22 07:00:08] local.INFO: TikTok webhook health check completed successfully  
[2026-08-22 07:00:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 07:05:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 07:05:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 07:10:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 07:10:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 07:15:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 06:15:03","window_to":"2026-08-22 07:15:03"} 
[2026-08-22 07:15:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 07:15:04] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 07:00:07","page":1} 
[2026-08-22 07:15:04] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 07:15:04] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 07:15:04] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 07:15:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 07:20:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 07:20:02] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 07:25:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 07:25:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 07:30:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 06:30:03","window_to":"2026-08-22 07:30:04"} 
[2026-08-22 07:30:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 07:30:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 07:15:04","page":1} 
[2026-08-22 07:30:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 07:30:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 07:30:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 07:30:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 07:35:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 07:35:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 07:40:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 07:40:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 07:45:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 06:45:03","window_to":"2026-08-22 07:45:03"} 
[2026-08-22 07:45:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 07:45:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 07:30:05","page":1} 
[2026-08-22 07:45:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 07:45:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 07:45:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 07:45:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 07:50:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 07:50:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 07:55:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 07:55:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 08:00:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 07:00:04","window_to":"2026-08-22 08:00:04"} 
[2026-08-22 08:00:04] local.INFO: Webhook health check completed successfully  
[2026-08-22 08:00:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 07:00:04","window_to":"2026-08-22 08:00:04"} 
[2026-08-22 08:00:06] local.INFO: Webhook retries processed successfully  
[2026-08-22 08:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 07:45:05","page":1} 
[2026-08-22 08:00:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 08:00:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 08:00:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 08:00:07] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-22 07:00:07","window_to":"2026-08-22 08:00:07"} 
[2026-08-22 08:00:07] local.INFO: TikTok webhook health check completed successfully  
[2026-08-22 08:00:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 08:00:09] local.INFO: Student payment reminder notifications sent successfully  
[2026-08-22 08:05:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 08:05:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 08:10:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 08:10:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 08:15:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 07:15:03","window_to":"2026-08-22 08:15:03"} 
[2026-08-22 08:15:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 08:15:04] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 08:00:06","page":1} 
[2026-08-22 08:15:04] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 08:15:04] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 08:15:04] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 08:15:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 08:20:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 08:20:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 08:25:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 08:25:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 08:30:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 07:30:04","window_to":"2026-08-22 08:30:04"} 
[2026-08-22 08:30:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 08:30:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 08:15:04","page":1} 
[2026-08-22 08:30:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 08:30:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 08:30:06] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 08:30:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 08:35:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 08:35:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 08:40:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 08:40:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 08:45:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 07:45:03","window_to":"2026-08-22 08:45:03"} 
[2026-08-22 08:45:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 08:45:04] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 08:30:05","page":1} 
[2026-08-22 08:45:06] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 08:45:06] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 08:45:06] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 08:45:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 08:50:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 08:50:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 08:55:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 08:55:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 09:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 08:00:04","window_to":"2026-08-22 09:00:04"} 
[2026-08-22 09:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 08:00:05","window_to":"2026-08-22 09:00:05"} 
[2026-08-22 09:00:05] local.INFO: Webhook health check completed successfully  
[2026-08-22 09:00:07] local.INFO: Webhook retries processed successfully  
[2026-08-22 09:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 08:45:04","page":1} 
[2026-08-22 09:00:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 09:00:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 09:00:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 09:00:08] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-22 08:00:08","window_to":"2026-08-22 09:00:08"} 
[2026-08-22 09:00:08] local.INFO: TikTok webhook health check completed successfully  
[2026-08-22 09:00:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 09:05:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 09:05:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 09:10:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 09:10:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 09:15:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 08:15:03","window_to":"2026-08-22 09:15:03"} 
[2026-08-22 09:15:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 09:15:04] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 09:00:07","page":1} 
[2026-08-22 09:15:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 09:15:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 09:15:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 09:15:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 09:20:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 09:20:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 09:25:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 09:25:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 09:30:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 09:30:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 08:30:04","window_to":"2026-08-22 09:30:04"} 
[2026-08-22 09:30:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 09:15:04","page":1} 
[2026-08-22 09:30:06] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 09:30:06] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 09:30:06] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 09:30:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 09:35:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 09:35:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 09:40:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 09:40:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 09:45:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 08:45:03","window_to":"2026-08-22 09:45:03"} 
[2026-08-22 09:45:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 09:45:04] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 09:30:06","page":1} 
[2026-08-22 09:45:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 09:45:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 09:45:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 09:45:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 09:50:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 09:50:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 09:55:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 09:55:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 10:00:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 09:00:04","window_to":"2026-08-22 10:00:04"} 
[2026-08-22 10:00:04] local.INFO: Webhook health check completed successfully  
[2026-08-22 10:00:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 09:00:04","window_to":"2026-08-22 10:00:04"} 
[2026-08-22 10:00:06] local.INFO: Webhook retries processed successfully  
[2026-08-22 10:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 09:45:04","page":1} 
[2026-08-22 10:00:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 10:00:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 10:00:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 10:00:08] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-22 09:00:08","window_to":"2026-08-22 10:00:08"} 
[2026-08-22 10:00:08] local.INFO: TikTok webhook health check completed successfully  
[2026-08-22 10:00:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 10:05:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 10:05:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 10:10:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 10:10:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 10:15:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 10:15:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 09:15:03","window_to":"2026-08-22 10:15:03"} 
[2026-08-22 10:15:04] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 10:00:07","page":1} 
[2026-08-22 10:15:04] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 10:15:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 10:15:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 10:15:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 10:20:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 10:20:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 10:25:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 10:25:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 10:30:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 09:30:04","window_to":"2026-08-22 10:30:04"} 
[2026-08-22 10:30:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 10:30:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 10:15:04","page":1} 
[2026-08-22 10:30:06] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 10:30:06] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 10:30:06] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 10:30:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 10:35:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 10:35:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 10:40:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 10:40:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 10:45:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 09:45:03","window_to":"2026-08-22 10:45:03"} 
[2026-08-22 10:45:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 10:45:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 10:30:06","page":1} 
[2026-08-22 10:45:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 10:45:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 10:45:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 10:45:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 10:50:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 10:50:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 10:55:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 10:55:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 11:00:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 10:00:04","window_to":"2026-08-22 11:00:04"} 
[2026-08-22 11:00:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 10:00:04","window_to":"2026-08-22 11:00:04"} 
[2026-08-22 11:00:04] local.INFO: Webhook health check completed successfully  
[2026-08-22 11:00:06] local.INFO: Webhook retries processed successfully  
[2026-08-22 11:00:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 10:45:05","page":1} 
[2026-08-22 11:00:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 11:00:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 11:00:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 11:00:07] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-22 10:00:07","window_to":"2026-08-22 11:00:07"} 
[2026-08-22 11:00:07] local.INFO: TikTok webhook health check completed successfully  
[2026-08-22 11:00:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 11:05:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 11:05:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 11:10:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 11:10:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 11:15:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 11:15:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 10:15:03","window_to":"2026-08-22 11:15:03"} 
[2026-08-22 11:15:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 11:00:06","page":1} 
[2026-08-22 11:15:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 11:15:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 11:15:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 11:15:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 11:20:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 11:20:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 11:25:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 11:25:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 11:30:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 11:30:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 10:30:03","window_to":"2026-08-22 11:30:03"} 
[2026-08-22 11:30:04] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 11:15:04","page":1} 
[2026-08-22 11:30:04] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 11:30:04] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 11:30:04] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 11:30:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 11:35:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 11:35:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 11:40:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 11:40:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 11:45:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 10:45:03","window_to":"2026-08-22 11:45:03"} 
[2026-08-22 11:45:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 11:45:04] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 11:30:04","page":1} 
[2026-08-22 11:45:04] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 11:45:04] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 11:45:04] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 11:45:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 11:50:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 11:50:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 11:55:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 11:55:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 12:00:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 11:00:04","window_to":"2026-08-22 12:00:04"} 
[2026-08-22 12:00:04] local.INFO: Webhook health check completed successfully  
[2026-08-22 12:00:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 11:00:04","window_to":"2026-08-22 12:00:04"} 
[2026-08-22 12:00:06] local.INFO: Webhook retries processed successfully  
[2026-08-22 12:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 11:45:04","page":1} 
[2026-08-22 12:00:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 12:00:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 12:00:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 12:00:07] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-22 11:00:07","window_to":"2026-08-22 12:00:07"} 
[2026-08-22 12:00:07] local.INFO: TikTok webhook health check completed successfully  
[2026-08-22 12:00:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 12:05:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 12:05:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 12:10:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 12:10:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 12:15:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 11:15:03","window_to":"2026-08-22 12:15:03"} 
[2026-08-22 12:15:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 12:15:04] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 12:00:07","page":1} 
[2026-08-22 12:15:04] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 12:15:04] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 12:15:04] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 12:15:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 12:20:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 12:20:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 12:25:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 12:25:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 12:30:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 12:30:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 11:30:03","window_to":"2026-08-22 12:30:03"} 
[2026-08-22 12:30:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 12:15:04","page":1} 
[2026-08-22 12:30:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 12:30:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 12:30:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 12:30:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 12:35:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 12:35:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 12:40:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 12:40:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 12:45:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 11:45:03","window_to":"2026-08-22 12:45:03"} 
[2026-08-22 12:45:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 12:45:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 12:30:05","page":1} 
[2026-08-22 12:45:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 12:45:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 12:45:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 12:45:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 12:50:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 12:50:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 12:55:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 12:55:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 13:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 12:00:05","window_to":"2026-08-22 13:00:05"} 
[2026-08-22 13:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 12:00:05","window_to":"2026-08-22 13:00:05"} 
[2026-08-22 13:00:05] local.INFO: Webhook health check completed successfully  
[2026-08-22 13:00:07] local.INFO: Webhook retries processed successfully  
[2026-08-22 13:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 12:45:05","page":1} 
[2026-08-22 13:00:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 13:00:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 13:00:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 13:00:08] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-22 12:00:08","window_to":"2026-08-22 13:00:08"} 
[2026-08-22 13:00:08] local.INFO: TikTok webhook health check completed successfully  
[2026-08-22 13:00:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 13:05:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 13:05:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 13:10:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 13:10:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 13:15:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 13:15:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 12:15:03","window_to":"2026-08-22 13:15:03"} 
[2026-08-22 13:15:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 13:00:07","page":1} 
[2026-08-22 13:15:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 13:15:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 13:15:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 13:15:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 13:20:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 13:20:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 13:25:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 13:25:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 13:30:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 12:30:04","window_to":"2026-08-22 13:30:04"} 
[2026-08-22 13:30:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 13:30:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 13:15:05","page":1} 
[2026-08-22 13:30:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 13:30:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 13:30:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 13:30:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 13:35:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 13:35:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 13:40:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 13:40:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 13:45:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 13:45:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 12:45:03","window_to":"2026-08-22 13:45:03"} 
[2026-08-22 13:45:04] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 13:30:05","page":1} 
[2026-08-22 13:45:04] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 13:45:04] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 13:45:04] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 13:45:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 13:50:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 13:50:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 13:55:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 13:55:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 14:00:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 13:00:04","window_to":"2026-08-22 14:00:04"} 
[2026-08-22 14:00:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 13:00:04","window_to":"2026-08-22 14:00:04"} 
[2026-08-22 14:00:04] local.INFO: Webhook health check completed successfully  
[2026-08-22 14:00:06] local.INFO: Webhook retries processed successfully  
[2026-08-22 14:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 13:45:04","page":1} 
[2026-08-22 14:00:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 14:00:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 14:00:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 14:00:08] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-22 13:00:07","window_to":"2026-08-22 14:00:07"} 
[2026-08-22 14:00:08] local.INFO: TikTok webhook health check completed successfully  
[2026-08-22 14:00:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 14:05:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 14:05:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 14:10:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 14:10:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 14:15:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 14:15:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 13:15:03","window_to":"2026-08-22 14:15:03"} 
[2026-08-22 14:15:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 14:00:07","page":1} 
[2026-08-22 14:15:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 14:15:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 14:15:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 14:15:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 14:20:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 14:20:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 14:25:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 14:25:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 14:30:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 13:30:03","window_to":"2026-08-22 14:30:03"} 
[2026-08-22 14:30:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 14:30:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 14:15:05","page":1} 
[2026-08-22 14:30:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 14:30:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 14:30:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 14:30:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 14:35:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 14:35:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 14:40:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 14:40:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 14:45:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 13:45:03","window_to":"2026-08-22 14:45:03"} 
[2026-08-22 14:45:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 14:45:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 14:30:05","page":1} 
[2026-08-22 14:45:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 14:45:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 14:45:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 14:45:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 14:50:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 14:50:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 14:55:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 14:55:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 15:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 14:00:05","window_to":"2026-08-22 15:00:05"} 
[2026-08-22 15:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 14:00:05","window_to":"2026-08-22 15:00:05"} 
[2026-08-22 15:00:05] local.INFO: Webhook health check completed successfully  
[2026-08-22 15:00:07] local.INFO: Webhook retries processed successfully  
[2026-08-22 15:00:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 14:45:05","page":1} 
[2026-08-22 15:00:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 15:00:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 15:00:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 15:00:09] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-22 14:00:08","window_to":"2026-08-22 15:00:08"} 
[2026-08-22 15:00:09] local.INFO: TikTok webhook health check completed successfully  
[2026-08-22 15:00:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 15:05:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 15:05:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 15:10:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 15:10:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 15:15:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 14:15:03","window_to":"2026-08-22 15:15:03"} 
[2026-08-22 15:15:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 15:15:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 15:00:08","page":1} 
[2026-08-22 15:15:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 15:15:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 15:15:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 15:15:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 15:20:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 15:20:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 15:25:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 15:25:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 15:30:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 15:30:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 14:30:04","window_to":"2026-08-22 15:30:04"} 
[2026-08-22 15:30:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 15:15:04","page":1} 
[2026-08-22 15:30:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 15:30:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 15:30:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 15:30:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 15:35:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 15:35:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 15:40:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 15:40:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 15:45:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 15:45:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 14:45:03","window_to":"2026-08-22 15:45:03"} 
[2026-08-22 15:45:04] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 15:30:05","page":1} 
[2026-08-22 15:45:04] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 15:45:04] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 15:45:04] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 15:45:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 15:50:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 15:50:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 15:55:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 15:55:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 16:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 15:00:04","window_to":"2026-08-22 16:00:04"} 
[2026-08-22 16:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 15:00:04","window_to":"2026-08-22 16:00:04"} 
[2026-08-22 16:00:05] local.INFO: Webhook health check completed successfully  
[2026-08-22 16:00:06] local.INFO: Webhook retries processed successfully  
[2026-08-22 16:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 15:45:04","page":1} 
[2026-08-22 16:00:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 16:00:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 16:00:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 16:00:08] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-22 15:00:08","window_to":"2026-08-22 16:00:08"} 
[2026-08-22 16:00:08] local.INFO: TikTok webhook health check completed successfully  
[2026-08-22 16:00:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 16:05:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 16:05:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 16:10:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 16:10:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 16:15:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 16:15:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 15:15:03","window_to":"2026-08-22 16:15:03"} 
[2026-08-22 16:15:04] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 16:00:07","page":1} 
[2026-08-22 16:15:04] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 16:15:04] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 16:15:04] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 16:15:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 16:20:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 16:20:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 16:25:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 16:25:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 16:30:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 16:30:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 15:30:03","window_to":"2026-08-22 16:30:03"} 
[2026-08-22 16:30:04] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 16:15:04","page":1} 
[2026-08-22 16:30:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 16:30:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 16:30:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 16:30:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 16:35:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 16:35:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 16:40:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 16:40:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 16:45:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 16:45:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 15:45:03","window_to":"2026-08-22 16:45:03"} 
[2026-08-22 16:45:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 16:30:04","page":1} 
[2026-08-22 16:45:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 16:45:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 16:45:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 16:45:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 16:50:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 16:50:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 16:55:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 16:55:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 17:00:04] local.INFO: Staff auto-checkout completed successfully  
[2026-08-22 17:00:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 16:00:04","window_to":"2026-08-22 17:00:04"} 
[2026-08-22 17:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 16:00:06","window_to":"2026-08-22 17:00:06"} 
[2026-08-22 17:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-22 17:00:07] local.INFO: Webhook retries processed successfully  
[2026-08-22 17:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 16:45:05","page":1} 
[2026-08-22 17:00:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 17:00:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 17:00:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 17:00:08] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-22 16:00:08","window_to":"2026-08-22 17:00:08"} 
[2026-08-22 17:00:08] local.INFO: TikTok webhook health check completed successfully  
[2026-08-22 17:00:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 17:05:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 17:05:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 17:10:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 17:10:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 17:15:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 17:15:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 16:15:03","window_to":"2026-08-22 17:15:03"} 
[2026-08-22 17:15:04] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 17:00:07","page":1} 
[2026-08-22 17:15:04] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 17:15:04] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 17:15:04] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 17:15:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 17:20:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 17:20:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 17:25:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 17:25:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 17:30:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 16:30:03","window_to":"2026-08-22 17:30:03"} 
[2026-08-22 17:30:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 17:30:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 17:15:04","page":1} 
[2026-08-22 17:30:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 17:30:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 17:30:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 17:30:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 17:35:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 17:35:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 17:40:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 17:40:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 17:45:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 16:45:03","window_to":"2026-08-22 17:45:03"} 
[2026-08-22 17:45:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 17:45:04] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 17:30:05","page":1} 
[2026-08-22 17:45:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 17:45:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 17:45:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 17:45:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 17:50:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 17:50:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 17:55:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 17:55:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 18:00:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 17:00:04","window_to":"2026-08-22 18:00:04"} 
[2026-08-22 18:00:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 17:00:04","window_to":"2026-08-22 18:00:04"} 
[2026-08-22 18:00:04] local.INFO: Webhook health check completed successfully  
[2026-08-22 18:00:06] local.INFO: Webhook retries processed successfully  
[2026-08-22 18:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 17:45:04","page":1} 
[2026-08-22 18:00:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 18:00:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 18:00:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 18:00:08] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-22 17:00:08","window_to":"2026-08-22 18:00:08"} 
[2026-08-22 18:00:08] local.INFO: TikTok webhook health check completed successfully  
[2026-08-22 18:00:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 18:05:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 18:05:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 18:10:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 18:10:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 18:15:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 17:15:03","window_to":"2026-08-22 18:15:03"} 
[2026-08-22 18:15:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 18:15:04] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 18:00:07","page":1} 
[2026-08-22 18:15:04] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 18:15:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 18:15:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 18:15:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 18:20:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 18:20:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 18:25:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 18:25:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 18:30:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 17:30:04","window_to":"2026-08-22 18:30:04"} 
[2026-08-22 18:30:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 18:30:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 18:15:04","page":1} 
[2026-08-22 18:30:06] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 18:30:06] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 18:30:06] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 18:30:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 18:35:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 18:35:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 18:40:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 18:40:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 18:45:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 17:45:03","window_to":"2026-08-22 18:45:03"} 
[2026-08-22 18:45:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 18:45:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 18:30:05","page":1} 
[2026-08-22 18:45:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 18:45:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 18:45:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 18:45:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 18:50:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 18:50:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 18:55:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 18:55:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 19:00:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 18:00:04","window_to":"2026-08-22 19:00:04"} 
[2026-08-22 19:00:04] local.INFO: Webhook health check completed successfully  
[2026-08-22 19:00:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 18:00:04","window_to":"2026-08-22 19:00:04"} 
[2026-08-22 19:00:06] local.INFO: Webhook retries processed successfully  
[2026-08-22 19:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 18:45:05","page":1} 
[2026-08-22 19:00:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 19:00:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 19:00:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 19:00:08] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-22 18:00:08","window_to":"2026-08-22 19:00:08"} 
[2026-08-22 19:00:08] local.INFO: TikTok webhook health check completed successfully  
[2026-08-22 19:00:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 19:05:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 19:05:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 19:10:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 19:10:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 19:15:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 18:15:03","window_to":"2026-08-22 19:15:03"} 
[2026-08-22 19:15:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 19:15:04] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 19:00:07","page":1} 
[2026-08-22 19:15:04] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 19:15:04] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 19:15:04] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 19:15:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 19:20:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 19:20:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 19:25:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 19:25:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 19:30:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 19:30:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 18:30:03","window_to":"2026-08-22 19:30:03"} 
[2026-08-22 19:30:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 19:15:04","page":1} 
[2026-08-22 19:30:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 19:30:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 19:30:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 19:30:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 19:35:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 19:35:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 19:40:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 19:40:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 19:45:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 19:45:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 18:45:03","window_to":"2026-08-22 19:45:03"} 
[2026-08-22 19:45:04] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 19:30:05","page":1} 
[2026-08-22 19:45:04] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 19:45:04] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 19:45:04] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 19:45:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 19:50:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 19:50:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 19:55:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 19:55:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 20:00:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 19:00:04","window_to":"2026-08-22 20:00:04"} 
[2026-08-22 20:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 19:00:04","window_to":"2026-08-22 20:00:04"} 
[2026-08-22 20:00:05] local.INFO: Webhook health check completed successfully  
[2026-08-22 20:00:06] local.INFO: Webhook retries processed successfully  
[2026-08-22 20:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 19:45:04","page":1} 
[2026-08-22 20:00:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 20:00:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 20:00:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 20:00:08] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-22 19:00:08","window_to":"2026-08-22 20:00:08"} 
[2026-08-22 20:00:08] local.INFO: TikTok webhook health check completed successfully  
[2026-08-22 20:00:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 20:05:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 20:05:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 20:10:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 20:10:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 20:15:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 19:15:04","window_to":"2026-08-22 20:15:04"} 
[2026-08-22 20:15:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 20:15:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 20:00:07","page":1} 
[2026-08-22 20:15:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 20:15:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 20:15:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 20:15:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 20:20:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 20:20:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 20:25:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 20:25:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 20:30:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 19:30:04","window_to":"2026-08-22 20:30:04"} 
[2026-08-22 20:30:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 20:30:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 20:15:05","page":1} 
[2026-08-22 20:30:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 20:30:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 20:30:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 20:30:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 20:35:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 20:35:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 20:40:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 20:40:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 20:45:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 20:45:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 19:45:04","window_to":"2026-08-22 20:45:04"} 
[2026-08-22 20:45:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 20:30:05","page":1} 
[2026-08-22 20:45:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 20:45:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 20:45:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 20:45:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 20:50:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 20:50:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 20:55:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 20:55:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 21:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 20:00:05","window_to":"2026-08-22 21:00:05"} 
[2026-08-22 21:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 20:00:05","window_to":"2026-08-22 21:00:05"} 
[2026-08-22 21:00:05] local.INFO: Webhook health check completed successfully  
[2026-08-22 21:00:07] local.INFO: Webhook retries processed successfully  
[2026-08-22 21:00:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 20:45:05","page":1} 
[2026-08-22 21:00:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 21:00:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 21:00:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 21:00:09] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-22 20:00:09","window_to":"2026-08-22 21:00:09"} 
[2026-08-22 21:00:09] local.INFO: TikTok webhook health check completed successfully  
[2026-08-22 21:00:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 21:05:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 21:05:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 21:10:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 21:10:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 21:15:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 20:15:04","window_to":"2026-08-22 21:15:04"} 
[2026-08-22 21:15:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 21:15:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 21:00:08","page":1} 
[2026-08-22 21:15:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 21:15:06] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 21:15:06] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 21:15:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 21:20:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 21:20:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 21:25:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 21:25:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 21:30:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 20:30:04","window_to":"2026-08-22 21:30:04"} 
[2026-08-22 21:30:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 21:30:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 21:15:05","page":1} 
[2026-08-22 21:30:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 21:30:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 21:30:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 21:30:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 21:35:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 21:35:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 21:40:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 21:40:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 21:45:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 21:45:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 20:45:03","window_to":"2026-08-22 21:45:03"} 
[2026-08-22 21:45:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 21:30:05","page":1} 
[2026-08-22 21:45:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 21:45:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 21:45:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 21:45:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 21:50:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 21:50:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 21:55:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 21:55:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 22:00:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 21:00:04","window_to":"2026-08-22 22:00:04"} 
[2026-08-22 22:00:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 21:00:04","window_to":"2026-08-22 22:00:04"} 
[2026-08-22 22:00:04] local.INFO: Webhook health check completed successfully  
[2026-08-22 22:00:07] local.INFO: Webhook retries processed successfully  
[2026-08-22 22:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 21:45:05","page":1} 
[2026-08-22 22:00:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 22:00:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 22:00:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 22:00:08] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-22 21:00:08","window_to":"2026-08-22 22:00:08"} 
[2026-08-22 22:00:08] local.INFO: TikTok webhook health check completed successfully  
[2026-08-22 22:00:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 22:05:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 22:05:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 22:10:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 22:10:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 22:15:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 21:15:03","window_to":"2026-08-22 22:15:03"} 
[2026-08-22 22:15:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 22:15:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 22:00:07","page":1} 
[2026-08-22 22:15:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 22:15:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 22:15:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 22:15:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 22:20:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 22:20:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 22:25:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 22:25:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 22:30:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 22:30:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 21:30:04","window_to":"2026-08-22 22:30:04"} 
[2026-08-22 22:30:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 22:15:05","page":1} 
[2026-08-22 22:30:06] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 22:30:06] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 22:30:06] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 22:30:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 22:35:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 22:35:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 22:40:02] local.INFO: Webhook retries processed successfully  
[2026-08-22 22:40:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 22:45:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 21:45:04","window_to":"2026-08-22 22:45:04"} 
[2026-08-22 22:45:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 22:45:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 22:30:06","page":1} 
[2026-08-22 22:45:06] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 22:45:06] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 22:45:06] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 22:45:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 22:50:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 22:50:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 22:55:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 22:55:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 23:00:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 22:00:04","window_to":"2026-08-22 23:00:04"} 
[2026-08-22 23:00:04] local.INFO: Webhook health check completed successfully  
[2026-08-22 23:00:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 22:00:04","window_to":"2026-08-22 23:00:04"} 
[2026-08-22 23:00:06] local.INFO: Webhook retries processed successfully  
[2026-08-22 23:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 22:45:05","page":1} 
[2026-08-22 23:00:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 23:00:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 23:00:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 23:00:08] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-22 22:00:08","window_to":"2026-08-22 23:00:08"} 
[2026-08-22 23:00:08] local.INFO: TikTok webhook health check completed successfully  
[2026-08-22 23:00:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 23:05:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 23:05:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 23:10:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 23:10:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 23:15:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 22:15:04","window_to":"2026-08-22 23:15:04"} 
[2026-08-22 23:15:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 23:15:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 23:00:07","page":1} 
[2026-08-22 23:15:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 23:15:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 23:15:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 23:15:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 23:20:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 23:20:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 23:25:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 23:25:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 23:30:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 22:30:03","window_to":"2026-08-22 23:30:03"} 
[2026-08-22 23:30:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 23:30:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 23:15:05","page":1} 
[2026-08-22 23:30:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 23:30:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 23:30:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 23:30:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 23:35:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 23:35:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 23:40:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 23:40:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 23:45:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 22:45:04","window_to":"2026-08-22 23:45:04"} 
[2026-08-22 23:45:04] local.INFO: Webhook retries processed successfully  
[2026-08-22 23:45:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 23:30:05","page":1} 
[2026-08-22 23:45:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-22 23:45:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-22 23:45:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-22 23:45:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 23:50:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 23:50:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-22 23:55:03] local.INFO: Webhook retries processed successfully  
[2026-08-22 23:55:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 00:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 23:00:05","window_to":"2026-08-23 00:00:05"} 
[2026-08-23 00:00:06] local.INFO: Commission cleanup completed successfully  
[2026-08-23 00:00:08] local.INFO: Student payment status check completed successfully  
[2026-08-23 00:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 23:00:08","window_to":"2026-08-23 00:00:08"} 
[2026-08-23 00:00:08] local.INFO: Webhook health check completed successfully  
[2026-08-23 00:00:09] local.INFO: Webhook retries processed successfully  
[2026-08-23 00:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-22 23:45:05","page":1} 
[2026-08-23 00:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 00:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 00:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 00:00:10] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-22 23:00:10","window_to":"2026-08-23 00:00:10"} 
[2026-08-23 00:00:10] local.INFO: TikTok webhook health check completed successfully  
[2026-08-23 00:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 00:00:12] local.INFO: Student payment status check completed successfully  
[2026-08-23 00:05:03] local.INFO: Webhook retries processed successfully  
[2026-08-23 00:05:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 00:10:03] local.INFO: Webhook retries processed successfully  
[2026-08-23 00:10:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 00:15:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 23:15:04","window_to":"2026-08-23 00:15:04"} 
[2026-08-23 00:15:04] local.INFO: Webhook retries processed successfully  
[2026-08-23 00:15:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 00:00:09","page":1} 
[2026-08-23 00:15:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 00:15:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 00:15:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 00:15:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 00:20:03] local.INFO: Webhook retries processed successfully  
[2026-08-23 00:20:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 00:25:03] local.INFO: Webhook retries processed successfully  
[2026-08-23 00:25:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 00:30:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 23:30:04","window_to":"2026-08-23 00:30:04"} 
[2026-08-23 00:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 00:30:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 00:15:05","page":1} 
[2026-08-23 00:30:06] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 00:30:06] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 00:30:06] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 00:30:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 00:35:03] local.INFO: Webhook retries processed successfully  
[2026-08-23 00:35:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 00:40:02] local.INFO: Webhook retries processed successfully  
[2026-08-23 00:40:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 00:45:03] local.INFO: Webhook retries processed successfully  
[2026-08-23 00:45:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-22 23:45:03","window_to":"2026-08-23 00:45:03"} 
[2026-08-23 00:45:04] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 00:30:06","page":1} 
[2026-08-23 00:45:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 00:45:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 00:45:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 00:45:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 00:50:03] local.INFO: Webhook retries processed successfully  
[2026-08-23 00:50:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 00:55:02] local.INFO: Webhook retries processed successfully  
[2026-08-23 00:55:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 01:00:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 00:00:04","window_to":"2026-08-23 01:00:04"} 
[2026-08-23 01:00:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 00:00:04","window_to":"2026-08-23 01:00:04"} 
[2026-08-23 01:00:05] local.INFO: Webhook health check completed successfully  
[2026-08-23 01:00:07] local.INFO: Webhook retries processed successfully  
[2026-08-23 01:00:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 00:45:04","page":1} 
[2026-08-23 01:00:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 01:00:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 01:00:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 01:00:08] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-23 00:00:08","window_to":"2026-08-23 01:00:08"} 
[2026-08-23 01:00:08] local.INFO: TikTok webhook health check completed successfully  
[2026-08-23 01:00:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 01:05:03] local.INFO: Webhook retries processed successfully  
[2026-08-23 01:05:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 01:10:03] local.INFO: Webhook retries processed successfully  
[2026-08-23 01:10:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 01:15:03] local.INFO: Webhook retries processed successfully  
[2026-08-23 01:15:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 00:15:03","window_to":"2026-08-23 01:15:03"} 
[2026-08-23 01:15:04] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 01:00:08","page":1} 
[2026-08-23 01:15:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 01:15:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 01:15:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 01:15:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 01:20:02] local.INFO: Webhook retries processed successfully  
[2026-08-23 01:20:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 01:25:02] local.INFO: Webhook retries processed successfully  
[2026-08-23 01:25:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 01:30:04] local.INFO: Webhook retries processed successfully  
[2026-08-23 01:30:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 00:30:04","window_to":"2026-08-23 01:30:04"} 
[2026-08-23 01:30:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 01:15:04","page":1} 
[2026-08-23 01:30:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 01:30:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 01:30:06] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 01:30:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 01:35:03] local.INFO: Webhook retries processed successfully  
[2026-08-23 01:35:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 01:40:02] local.INFO: Webhook retries processed successfully  
[2026-08-23 01:40:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 01:45:03] local.INFO: Webhook retries processed successfully  
[2026-08-23 01:45:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 00:45:03","window_to":"2026-08-23 01:45:03"} 
[2026-08-23 01:45:04] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 01:30:05","page":1} 
[2026-08-23 01:45:04] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 01:45:04] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 01:45:04] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 01:45:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 01:50:02] local.INFO: Webhook retries processed successfully  
[2026-08-23 01:50:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 01:55:02] local.INFO: Webhook retries processed successfully  
[2026-08-23 01:55:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 02:00:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 01:00:04","window_to":"2026-08-23 02:00:04"} 
[2026-08-23 02:00:04] local.INFO: JWT secrets rotated successfully  
[2026-08-23 02:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 01:00:06","window_to":"2026-08-23 02:00:06"} 
[2026-08-23 02:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-23 02:00:07] local.INFO: Webhook retries processed successfully  
[2026-08-23 02:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 01:45:04","page":1} 
[2026-08-23 02:00:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 02:00:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 02:00:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 02:00:08] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-23 01:00:08","window_to":"2026-08-23 02:00:08"} 
[2026-08-23 02:00:08] local.INFO: TikTok webhook health check completed successfully  
[2026-08-23 02:00:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 02:05:03] local.INFO: Webhook retries processed successfully  
[2026-08-23 02:05:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 02:10:03] local.INFO: Webhook retries processed successfully  
[2026-08-23 02:10:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 02:15:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 01:15:03","window_to":"2026-08-23 02:15:03"} 
[2026-08-23 02:15:03] local.INFO: Webhook retries processed successfully  
[2026-08-23 02:15:04] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 02:00:07","page":1} 
[2026-08-23 02:15:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 02:15:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 02:15:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 02:15:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 02:20:03] local.INFO: Webhook retries processed successfully  
[2026-08-23 02:20:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 02:25:03] local.INFO: Webhook retries processed successfully  
[2026-08-23 02:25:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 02:30:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 01:30:03","window_to":"2026-08-23 02:30:03"} 
[2026-08-23 02:30:04] local.INFO: Webhook retries processed successfully  
[2026-08-23 02:30:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 02:15:04","page":1} 
[2026-08-23 02:30:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 02:30:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 02:30:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 02:30:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 02:35:02] local.INFO: Webhook retries processed successfully  
[2026-08-23 02:35:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 02:40:02] local.INFO: Webhook retries processed successfully  
[2026-08-23 02:40:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 02:45:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 01:45:03","window_to":"2026-08-23 02:45:03"} 
[2026-08-23 02:45:03] local.INFO: Webhook retries processed successfully  
[2026-08-23 02:45:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 02:30:05","page":1} 
[2026-08-23 02:45:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 02:45:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 02:45:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 02:45:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 02:50:02] local.INFO: Webhook retries processed successfully  
[2026-08-23 02:50:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 02:55:03] local.INFO: Webhook retries processed successfully  
[2026-08-23 02:55:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 03:00:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 02:00:04","window_to":"2026-08-23 03:00:04"} 
[2026-08-23 03:00:04] local.INFO: Webhook health check completed successfully  
[2026-08-23 03:00:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 02:00:04","window_to":"2026-08-23 03:00:04"} 
[2026-08-23 03:00:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 03:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 02:45:05","page":1} 
[2026-08-23 03:00:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 03:00:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 03:00:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 03:00:07] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-23 02:00:07","window_to":"2026-08-23 03:00:07"} 
[2026-08-23 03:00:07] local.INFO: TikTok webhook health check completed successfully  
[2026-08-23 03:00:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 03:05:02] local.INFO: Webhook retries processed successfully  
[2026-08-23 03:05:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 03:10:02] local.INFO: Webhook retries processed successfully  
[2026-08-23 03:10:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 03:15:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 02:15:03","window_to":"2026-08-23 03:15:03"} 
[2026-08-23 03:15:04] local.INFO: Webhook retries processed successfully  
[2026-08-23 03:15:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 03:00:07","page":1} 
[2026-08-23 03:15:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 03:15:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 03:15:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 03:15:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 03:20:03] local.INFO: Webhook retries processed successfully  
[2026-08-23 03:20:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 03:25:02] local.INFO: Webhook retries processed successfully  
[2026-08-23 03:25:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 03:30:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 02:30:04","window_to":"2026-08-23 03:30:04"} 
[2026-08-23 03:30:04] local.INFO: Webhook retries processed successfully  
[2026-08-23 03:30:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 03:15:05","page":1} 
[2026-08-23 03:30:06] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 03:30:06] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 03:30:06] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 03:30:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 03:35:02] local.INFO: Webhook retries processed successfully  
[2026-08-23 03:35:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 03:40:03] local.INFO: Webhook retries processed successfully  
[2026-08-23 03:40:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 03:45:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 02:45:03","window_to":"2026-08-23 03:45:03"} 
[2026-08-23 03:45:04] local.INFO: Webhook retries processed successfully  
[2026-08-23 03:45:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 03:30:06","page":1} 
[2026-08-23 03:45:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 03:45:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 03:45:06] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 03:45:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 03:50:03] local.INFO: Webhook retries processed successfully  
[2026-08-23 03:50:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 03:55:03] local.INFO: Webhook retries processed successfully  
[2026-08-23 03:55:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 04:00:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 03:00:04","window_to":"2026-08-23 04:00:04"} 
[2026-08-23 04:00:04] local.INFO: Webhook health check completed successfully  
[2026-08-23 04:00:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 03:00:04","window_to":"2026-08-23 04:00:04"} 
[2026-08-23 04:00:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 04:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 03:45:05","page":1} 
[2026-08-23 04:00:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 04:00:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 04:00:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 04:00:07] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-23 03:00:07","window_to":"2026-08-23 04:00:07"} 
[2026-08-23 04:00:07] local.INFO: TikTok webhook health check completed successfully  
[2026-08-23 04:00:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 04:05:02] local.INFO: Webhook retries processed successfully  
[2026-08-23 04:05:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 04:10:02] local.INFO: Webhook retries processed successfully  
[2026-08-23 04:10:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 04:15:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 03:15:03","window_to":"2026-08-23 04:15:03"} 
[2026-08-23 04:15:03] local.INFO: Webhook retries processed successfully  
[2026-08-23 04:15:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 04:00:07","page":1} 
[2026-08-23 04:15:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 04:15:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 04:15:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 04:15:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 04:20:02] local.INFO: Webhook retries processed successfully  
[2026-08-23 04:20:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 04:25:03] local.INFO: Webhook retries processed successfully  
[2026-08-23 04:25:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 04:30:04] local.INFO: Webhook retries processed successfully  
[2026-08-23 04:30:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 03:30:04","window_to":"2026-08-23 04:30:04"} 
[2026-08-23 04:30:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 04:15:05","page":1} 
[2026-08-23 04:30:06] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 04:30:06] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 04:30:06] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 04:30:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 04:35:03] local.INFO: Webhook retries processed successfully  
[2026-08-23 04:35:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 04:40:03] local.INFO: Webhook retries processed successfully  
[2026-08-23 04:40:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 04:45:03] local.INFO: Webhook retries processed successfully  
[2026-08-23 04:45:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 03:45:04","window_to":"2026-08-23 04:45:04"} 
[2026-08-23 04:45:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 04:30:05","page":1} 
[2026-08-23 04:45:05] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 04:45:05] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 04:45:05] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 04:45:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 04:50:03] local.INFO: Webhook retries processed successfully  
[2026-08-23 04:50:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 04:55:02] local.INFO: Webhook retries processed successfully  
[2026-08-23 04:55:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 05:00:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 04:00:04","window_to":"2026-08-23 05:00:04"} 
[2026-08-23 05:00:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 04:00:04","window_to":"2026-08-23 05:00:04"} 
[2026-08-23 05:00:04] local.INFO: Webhook health check completed successfully  
[2026-08-23 05:00:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 05:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 04:45:05","page":1} 
[2026-08-23 05:00:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 05:00:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 05:00:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 05:00:08] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-23 04:00:08","window_to":"2026-08-23 05:00:08"} 
[2026-08-23 05:00:08] local.INFO: TikTok webhook health check completed successfully  
[2026-08-23 05:00:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 05:05:02] local.INFO: Webhook retries processed successfully  
[2026-08-23 05:05:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 05:10:03] local.INFO: Webhook retries processed successfully  
[2026-08-23 05:10:04] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 05:15:03] local.INFO: Webhook retries processed successfully  
[2026-08-23 05:15:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 04:15:03","window_to":"2026-08-23 05:15:03"} 
[2026-08-23 05:15:04] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 05:00:07","page":1} 
[2026-08-23 05:15:04] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 05:15:04] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 05:15:04] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 05:15:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 05:20:02] local.INFO: Webhook retries processed successfully  
[2026-08-23 05:20:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 05:25:03] local.INFO: Webhook retries processed successfully  
[2026-08-23 05:25:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 05:30:04] local.INFO: Webhook retries processed successfully  
[2026-08-23 05:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 04:30:05","window_to":"2026-08-23 05:30:05"} 
[2026-08-23 05:30:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 05:15:04","page":1} 
[2026-08-23 05:30:06] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 05:30:06] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 05:30:06] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 05:30:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 05:35:03] local.INFO: Webhook retries processed successfully  
[2026-08-23 05:35:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 05:40:03] local.INFO: Webhook retries processed successfully  
[2026-08-23 05:40:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 05:45:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 04:45:03","window_to":"2026-08-23 05:45:03"} 
[2026-08-23 05:45:03] local.INFO: Webhook retries processed successfully  
[2026-08-23 05:45:04] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 05:30:06","page":1} 
[2026-08-23 05:45:04] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 05:45:04] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 05:45:04] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 05:45:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 05:50:03] local.INFO: Webhook retries processed successfully  
[2026-08-23 05:50:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 05:55:02] local.INFO: Webhook retries processed successfully  
[2026-08-23 05:55:03] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 06:00:03] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 05:00:03","window_to":"2026-08-23 06:00:03"} 
[2026-08-23 06:00:04] local.INFO: Webhook health check completed successfully  
[2026-08-23 06:00:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 05:00:04","window_to":"2026-08-23 06:00:04"} 
[2026-08-23 06:00:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 06:00:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 05:45:04","page":1} 
[2026-08-23 06:00:06] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 06:00:06] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 06:00:06] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 06:00:07] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-23 05:00:07","window_to":"2026-08-23 06:00:07"} 
[2026-08-23 06:00:07] local.INFO: TikTok webhook health check completed successfully  
[2026-08-23 06:00:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 06:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-23 06:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 06:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 06:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 06:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 05:15:05","window_to":"2026-08-23 06:15:05"} 
[2026-08-23 06:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 06:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 06:00:06","page":1} 
[2026-08-23 06:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 06:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 06:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 06:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 06:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 06:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 06:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 06:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 06:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 05:30:05","window_to":"2026-08-23 06:30:05"} 
[2026-08-23 06:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 06:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 06:15:08","page":1} 
[2026-08-23 06:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 06:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 06:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 06:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 06:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 06:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 06:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 06:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 06:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 06:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 05:45:05","window_to":"2026-08-23 06:45:05"} 
[2026-08-23 06:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 06:30:09","page":1} 
[2026-08-23 06:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 06:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 06:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 06:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 06:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 06:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 06:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 06:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 07:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 06:00:06","window_to":"2026-08-23 07:00:06"} 
[2026-08-23 07:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 06:00:06","window_to":"2026-08-23 07:00:06"} 
[2026-08-23 07:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-23 07:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-23 07:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 06:45:08","page":1} 
[2026-08-23 07:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 07:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 07:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 07:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-23 06:00:11","window_to":"2026-08-23 07:00:11"} 
[2026-08-23 07:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-23 07:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 07:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-23 07:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 07:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-23 07:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 07:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 06:15:05","window_to":"2026-08-23 07:15:05"} 
[2026-08-23 07:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 07:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 07:00:10","page":1} 
[2026-08-23 07:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 07:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 07:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 07:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 07:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 07:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 07:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 07:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 07:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 07:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 06:30:05","window_to":"2026-08-23 07:30:06"} 
[2026-08-23 07:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 07:15:08","page":1} 
[2026-08-23 07:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 07:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 07:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 07:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 07:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 07:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 07:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 07:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 07:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 07:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 06:45:05","window_to":"2026-08-23 07:45:05"} 
[2026-08-23 07:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 07:30:09","page":1} 
[2026-08-23 07:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 07:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 07:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 07:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 07:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 07:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 07:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 07:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 08:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 07:00:07","window_to":"2026-08-23 08:00:07"} 
[2026-08-23 08:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 07:00:07","window_to":"2026-08-23 08:00:07"} 
[2026-08-23 08:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-23 08:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-23 08:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 07:45:08","page":1} 
[2026-08-23 08:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 08:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 08:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 08:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-23 07:00:13","window_to":"2026-08-23 08:00:13"} 
[2026-08-23 08:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-23 08:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 08:00:14] local.INFO: Student payment reminder notifications sent successfully  
[2026-08-23 08:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-23 08:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 08:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 08:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 08:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 07:15:06","window_to":"2026-08-23 08:15:06"} 
[2026-08-23 08:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 08:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 08:00:12","page":1} 
[2026-08-23 08:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 08:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 08:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 08:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 08:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 08:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 08:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-23 08:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 08:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 07:30:06","window_to":"2026-08-23 08:30:06"} 
[2026-08-23 08:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 08:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 08:15:09","page":1} 
[2026-08-23 08:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 08:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 08:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 08:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 08:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 08:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 08:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 08:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 08:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 08:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 07:45:06","window_to":"2026-08-23 08:45:06"} 
[2026-08-23 08:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 08:30:10","page":1} 
[2026-08-23 08:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 08:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 08:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 08:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 08:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 08:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 08:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 08:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 09:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 08:00:06","window_to":"2026-08-23 09:00:06"} 
[2026-08-23 09:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 08:00:06","window_to":"2026-08-23 09:00:06"} 
[2026-08-23 09:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-23 09:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-23 09:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 08:45:09","page":1} 
[2026-08-23 09:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 09:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 09:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 09:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-23 08:00:12","window_to":"2026-08-23 09:00:12"} 
[2026-08-23 09:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-23 09:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 09:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 09:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 09:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 09:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 09:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 08:15:06","window_to":"2026-08-23 09:15:06"} 
[2026-08-23 09:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 09:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 09:00:11","page":1} 
[2026-08-23 09:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 09:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 09:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 09:15:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 09:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 09:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 09:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 09:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 09:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-23 09:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 08:30:07","window_to":"2026-08-23 09:30:07"} 
[2026-08-23 09:30:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 09:15:10","page":1} 
[2026-08-23 09:30:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 09:30:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 09:30:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 09:30:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 09:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 09:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 09:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 09:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 09:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 08:45:06","window_to":"2026-08-23 09:45:06"} 
[2026-08-23 09:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 09:45:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 09:30:11","page":1} 
[2026-08-23 09:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 09:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 09:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 09:45:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 09:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 09:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 09:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 09:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 10:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 09:00:07","window_to":"2026-08-23 10:00:07"} 
[2026-08-23 10:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 09:00:07","window_to":"2026-08-23 10:00:07"} 
[2026-08-23 10:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-23 10:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-23 10:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 09:45:10","page":1} 
[2026-08-23 10:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 10:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 10:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 10:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-23 09:00:13","window_to":"2026-08-23 10:00:13"} 
[2026-08-23 10:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-23 10:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 10:05:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 10:05:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 10:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 10:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 10:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 09:15:06","window_to":"2026-08-23 10:15:06"} 
[2026-08-23 10:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 10:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 10:00:12","page":1} 
[2026-08-23 10:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 10:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 10:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 10:15:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 10:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 10:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 10:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 10:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 10:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 09:30:06","window_to":"2026-08-23 10:30:07"} 
[2026-08-23 10:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-23 10:30:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 10:15:10","page":1} 
[2026-08-23 10:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 10:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 10:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 10:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 10:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 10:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 10:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 10:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 10:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 09:45:06","window_to":"2026-08-23 10:45:06"} 
[2026-08-23 10:45:07] local.INFO: Webhook retries processed successfully  
[2026-08-23 10:45:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 10:30:10","page":1} 
[2026-08-23 10:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 10:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 10:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 10:45:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 10:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 10:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 10:55:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 10:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 11:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 10:00:07","window_to":"2026-08-23 11:00:07"} 
[2026-08-23 11:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-23 11:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 10:00:07","window_to":"2026-08-23 11:00:07"} 
[2026-08-23 11:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-23 11:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 10:45:10","page":1} 
[2026-08-23 11:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 11:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 11:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 11:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-23 10:00:13","window_to":"2026-08-23 11:00:13"} 
[2026-08-23 11:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-23 11:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 11:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 11:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 11:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 11:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 11:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 10:15:05","window_to":"2026-08-23 11:15:05"} 
[2026-08-23 11:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 11:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 11:00:12","page":1} 
[2026-08-23 11:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 11:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 11:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 11:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 11:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 11:20:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 11:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 11:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 11:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 10:30:05","window_to":"2026-08-23 11:30:05"} 
[2026-08-23 11:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 11:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 11:15:09","page":1} 
[2026-08-23 11:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 11:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 11:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 11:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 11:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 11:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 11:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 11:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 11:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 10:45:06","window_to":"2026-08-23 11:45:06"} 
[2026-08-23 11:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 11:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 11:30:09","page":1} 
[2026-08-23 11:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 11:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 11:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 11:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 11:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 11:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 11:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 11:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 12:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 11:00:06","window_to":"2026-08-23 12:00:06"} 
[2026-08-23 12:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 11:00:07","window_to":"2026-08-23 12:00:07"} 
[2026-08-23 12:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-23 12:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-23 12:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 11:45:09","page":1} 
[2026-08-23 12:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 12:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 12:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 12:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-23 11:00:13","window_to":"2026-08-23 12:00:13"} 
[2026-08-23 12:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-23 12:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 12:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 12:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 12:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 12:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 12:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 11:15:05","window_to":"2026-08-23 12:15:05"} 
[2026-08-23 12:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 12:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 12:00:12","page":1} 
[2026-08-23 12:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 12:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 12:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 12:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 12:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 12:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 12:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 12:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 12:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-23 12:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 11:30:06","window_to":"2026-08-23 12:30:06"} 
[2026-08-23 12:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 12:15:09","page":1} 
[2026-08-23 12:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 12:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 12:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 12:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 12:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 12:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 12:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 12:40:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 12:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 11:45:06","window_to":"2026-08-23 12:45:06"} 
[2026-08-23 12:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 12:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 12:30:10","page":1} 
[2026-08-23 12:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 12:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 12:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 12:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 12:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 12:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 12:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 12:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 13:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 12:00:06","window_to":"2026-08-23 13:00:06"} 
[2026-08-23 13:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 12:00:07","window_to":"2026-08-23 13:00:07"} 
[2026-08-23 13:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-23 13:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-23 13:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 12:45:09","page":1} 
[2026-08-23 13:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 13:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 13:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 13:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-23 12:00:13","window_to":"2026-08-23 13:00:13"} 
[2026-08-23 13:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-23 13:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 13:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 13:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 13:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 13:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 13:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 12:15:06","window_to":"2026-08-23 13:15:06"} 
[2026-08-23 13:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 13:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 13:00:12","page":1} 
[2026-08-23 13:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 13:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 13:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 13:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 13:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 13:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 13:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 13:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 13:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 12:30:06","window_to":"2026-08-23 13:30:06"} 
[2026-08-23 13:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 13:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 13:15:09","page":1} 
[2026-08-23 13:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 13:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 13:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 13:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 13:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 13:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 13:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 13:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 13:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 12:45:06","window_to":"2026-08-23 13:45:06"} 
[2026-08-23 13:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 13:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 13:30:10","page":1} 
[2026-08-23 13:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 13:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 13:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 13:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 13:50:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 13:50:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 13:55:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 13:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 14:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 13:00:06","window_to":"2026-08-23 14:00:06"} 
[2026-08-23 14:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 13:00:06","window_to":"2026-08-23 14:00:06"} 
[2026-08-23 14:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-23 14:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-23 14:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 13:45:09","page":1} 
[2026-08-23 14:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 14:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 14:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 14:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-23 13:00:12","window_to":"2026-08-23 14:00:12"} 
[2026-08-23 14:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-23 14:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 14:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 14:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 14:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 14:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 14:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 13:15:05","window_to":"2026-08-23 14:15:05"} 
[2026-08-23 14:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 14:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 14:00:11","page":1} 
[2026-08-23 14:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 14:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 14:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 14:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 14:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 14:20:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 14:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 14:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 14:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 13:30:07","window_to":"2026-08-23 14:30:07"} 
[2026-08-23 14:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-23 14:30:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 14:15:09","page":1} 
[2026-08-23 14:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 14:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 14:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 14:30:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 14:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 14:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 14:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 14:40:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 14:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 13:45:06","window_to":"2026-08-23 14:45:06"} 
[2026-08-23 14:45:07] local.INFO: Webhook retries processed successfully  
[2026-08-23 14:45:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 14:30:11","page":1} 
[2026-08-23 14:45:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 14:45:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 14:45:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 14:45:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 14:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 14:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 14:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 14:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 15:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 14:00:07","window_to":"2026-08-23 15:00:07"} 
[2026-08-23 15:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 14:00:07","window_to":"2026-08-23 15:00:07"} 
[2026-08-23 15:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-23 15:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-23 15:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 14:45:10","page":1} 
[2026-08-23 15:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 15:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 15:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 15:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-23 14:00:13","window_to":"2026-08-23 15:00:13"} 
[2026-08-23 15:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-23 15:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 15:05:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 15:05:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 15:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 15:10:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 15:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 14:15:07","window_to":"2026-08-23 15:15:07"} 
[2026-08-23 15:15:07] local.INFO: Webhook retries processed successfully  
[2026-08-23 15:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 15:00:12","page":1} 
[2026-08-23 15:15:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 15:15:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 15:15:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 15:15:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 15:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 15:20:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 15:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 15:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 15:30:08] local.INFO: Webhook retries processed successfully  
[2026-08-23 15:30:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 14:30:08","window_to":"2026-08-23 15:30:08"} 
[2026-08-23 15:30:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 15:15:10","page":1} 
[2026-08-23 15:30:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 15:30:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 15:30:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 15:30:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 15:35:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 15:35:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 15:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 15:40:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 15:45:07] local.INFO: Webhook retries processed successfully  
[2026-08-23 15:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 14:45:07","window_to":"2026-08-23 15:45:07"} 
[2026-08-23 15:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 15:30:12","page":1} 
[2026-08-23 15:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 15:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 15:45:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 15:45:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 15:50:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 15:50:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 15:55:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 15:55:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 16:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 15:00:08","window_to":"2026-08-23 16:00:08"} 
[2026-08-23 16:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 15:00:08","window_to":"2026-08-23 16:00:08"} 
[2026-08-23 16:00:08] local.INFO: Webhook health check completed successfully  
[2026-08-23 16:00:13] local.INFO: Webhook retries processed successfully  
[2026-08-23 16:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 15:45:11","page":1} 
[2026-08-23 16:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 16:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 16:00:15] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 16:00:16] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-23 15:00:16","window_to":"2026-08-23 16:00:16"} 
[2026-08-23 16:00:16] local.INFO: TikTok webhook health check completed successfully  
[2026-08-23 16:00:16] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 16:05:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 16:05:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 16:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 16:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 16:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 15:15:07","window_to":"2026-08-23 16:15:07"} 
[2026-08-23 16:15:07] local.INFO: Webhook retries processed successfully  
[2026-08-23 16:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 16:00:14","page":1} 
[2026-08-23 16:15:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 16:15:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 16:15:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 16:15:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 16:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 16:20:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 16:25:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 16:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 16:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-23 16:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 15:30:07","window_to":"2026-08-23 16:30:07"} 
[2026-08-23 16:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 16:15:10","page":1} 
[2026-08-23 16:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 16:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 16:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 16:30:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 16:35:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 16:35:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 16:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 16:40:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 16:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 15:45:06","window_to":"2026-08-23 16:45:06"} 
[2026-08-23 16:45:07] local.INFO: Webhook retries processed successfully  
[2026-08-23 16:45:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 16:30:10","page":1} 
[2026-08-23 16:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 16:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 16:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 16:45:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 16:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 16:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 16:55:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 16:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 17:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 16:00:07","window_to":"2026-08-23 17:00:07"} 
[2026-08-23 17:00:08] local.INFO: Staff auto-checkout completed successfully  
[2026-08-23 17:00:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 16:00:12","window_to":"2026-08-23 17:00:12"} 
[2026-08-23 17:00:12] local.INFO: Webhook health check completed successfully  
[2026-08-23 17:00:13] local.INFO: Webhook retries processed successfully  
[2026-08-23 17:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 16:45:10","page":1} 
[2026-08-23 17:00:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 17:00:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 17:00:14] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 17:00:14] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-23 16:00:14","window_to":"2026-08-23 17:00:14"} 
[2026-08-23 17:00:14] local.INFO: TikTok webhook health check completed successfully  
[2026-08-23 17:00:15] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 17:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 17:05:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 17:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 17:10:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 17:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 16:15:06","window_to":"2026-08-23 17:15:06"} 
[2026-08-23 17:15:07] local.INFO: Webhook retries processed successfully  
[2026-08-23 17:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 17:00:14","page":1} 
[2026-08-23 17:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 17:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 17:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 17:15:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 17:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 17:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 17:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 17:25:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 17:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 16:30:06","window_to":"2026-08-23 17:30:06"} 
[2026-08-23 17:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 17:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 17:15:10","page":1} 
[2026-08-23 17:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 17:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 17:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 17:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 17:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 17:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 17:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 17:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 17:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 16:45:06","window_to":"2026-08-23 17:45:06"} 
[2026-08-23 17:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 17:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 17:30:10","page":1} 
[2026-08-23 17:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 17:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 17:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 17:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 17:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 17:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 17:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 17:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 18:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 17:00:06","window_to":"2026-08-23 18:00:06"} 
[2026-08-23 18:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 17:00:07","window_to":"2026-08-23 18:00:07"} 
[2026-08-23 18:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-23 18:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-23 18:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 17:45:09","page":1} 
[2026-08-23 18:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 18:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 18:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 18:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-23 17:00:12","window_to":"2026-08-23 18:00:12"} 
[2026-08-23 18:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-23 18:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 18:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 18:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 18:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 18:10:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 18:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 17:15:06","window_to":"2026-08-23 18:15:06"} 
[2026-08-23 18:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 18:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 18:00:11","page":1} 
[2026-08-23 18:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 18:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 18:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 18:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 18:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 18:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 18:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 18:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 18:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 18:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 17:30:06","window_to":"2026-08-23 18:30:06"} 
[2026-08-23 18:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 18:15:10","page":1} 
[2026-08-23 18:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 18:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 18:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 18:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 18:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 18:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 18:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 18:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 18:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 17:45:06","window_to":"2026-08-23 18:45:06"} 
[2026-08-23 18:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 18:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 18:30:09","page":1} 
[2026-08-23 18:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 18:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 18:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 18:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 18:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 18:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 18:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 18:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 19:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 18:00:07","window_to":"2026-08-23 19:00:07"} 
[2026-08-23 19:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 18:00:07","window_to":"2026-08-23 19:00:07"} 
[2026-08-23 19:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-23 19:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-23 19:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 18:45:09","page":1} 
[2026-08-23 19:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 19:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 19:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 19:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-23 18:00:13","window_to":"2026-08-23 19:00:13"} 
[2026-08-23 19:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-23 19:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 19:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 19:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 19:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 19:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 19:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 19:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 18:15:06","window_to":"2026-08-23 19:15:06"} 
[2026-08-23 19:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 19:00:12","page":1} 
[2026-08-23 19:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 19:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 19:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 19:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 19:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 19:20:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 19:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 19:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 19:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-23 19:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 18:30:07","window_to":"2026-08-23 19:30:07"} 
[2026-08-23 19:30:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 19:15:09","page":1} 
[2026-08-23 19:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 19:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 19:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 19:30:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 19:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 19:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 19:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 19:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 19:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 18:45:06","window_to":"2026-08-23 19:45:06"} 
[2026-08-23 19:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 19:45:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 19:30:11","page":1} 
[2026-08-23 19:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 19:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 19:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 19:45:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 19:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 19:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 19:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 19:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 20:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 19:00:07","window_to":"2026-08-23 20:00:07"} 
[2026-08-23 20:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 19:00:07","window_to":"2026-08-23 20:00:07"} 
[2026-08-23 20:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-23 20:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-23 20:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 19:45:10","page":1} 
[2026-08-23 20:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 20:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 20:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 20:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-23 19:00:13","window_to":"2026-08-23 20:00:13"} 
[2026-08-23 20:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-23 20:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 20:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 20:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 20:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 20:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 20:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 20:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 19:15:06","window_to":"2026-08-23 20:15:06"} 
[2026-08-23 20:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 20:00:12","page":1} 
[2026-08-23 20:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 20:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 20:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 20:15:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 20:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 20:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 20:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 20:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 20:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-23 20:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 19:30:07","window_to":"2026-08-23 20:30:07"} 
[2026-08-23 20:30:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 20:15:10","page":1} 
[2026-08-23 20:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 20:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 20:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 20:30:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 20:35:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 20:35:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 20:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 20:40:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 20:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 19:45:07","window_to":"2026-08-23 20:45:07"} 
[2026-08-23 20:45:07] local.INFO: Webhook retries processed successfully  
[2026-08-23 20:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 20:30:11","page":1} 
[2026-08-23 20:45:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 20:45:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 20:45:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 20:45:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 20:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 20:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 20:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 20:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 21:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 20:00:07","window_to":"2026-08-23 21:00:07"} 
[2026-08-23 21:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 20:00:07","window_to":"2026-08-23 21:00:07"} 
[2026-08-23 21:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-23 21:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-23 21:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 20:45:11","page":1} 
[2026-08-23 21:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 21:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 21:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 21:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-23 20:00:13","window_to":"2026-08-23 21:00:13"} 
[2026-08-23 21:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-23 21:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 21:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 21:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 21:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 21:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 21:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 21:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 20:15:07","window_to":"2026-08-23 21:15:07"} 
[2026-08-23 21:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 21:00:12","page":1} 
[2026-08-23 21:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 21:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 21:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 21:15:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 21:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 21:20:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 21:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 21:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 21:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 21:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 20:30:06","window_to":"2026-08-23 21:30:06"} 
[2026-08-23 21:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 21:15:10","page":1} 
[2026-08-23 21:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 21:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 21:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 21:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 21:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 21:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 21:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 21:40:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 21:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 21:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 20:45:06","window_to":"2026-08-23 21:45:06"} 
[2026-08-23 21:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 21:30:10","page":1} 
[2026-08-23 21:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 21:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 21:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 21:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 21:50:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 21:50:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 21:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 21:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 22:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 21:00:07","window_to":"2026-08-23 22:00:07"} 
[2026-08-23 22:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 21:00:07","window_to":"2026-08-23 22:00:07"} 
[2026-08-23 22:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-23 22:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-23 22:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 21:45:09","page":1} 
[2026-08-23 22:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 22:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 22:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 22:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-23 21:00:13","window_to":"2026-08-23 22:00:13"} 
[2026-08-23 22:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-23 22:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 22:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 22:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 22:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 22:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 22:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 22:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 21:15:06","window_to":"2026-08-23 22:15:06"} 
[2026-08-23 22:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 22:00:12","page":1} 
[2026-08-23 22:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 22:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 22:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 22:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 22:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 22:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 22:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 22:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 22:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 21:30:07","window_to":"2026-08-23 22:30:07"} 
[2026-08-23 22:30:08] local.INFO: Webhook retries processed successfully  
[2026-08-23 22:30:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 22:15:09","page":1} 
[2026-08-23 22:30:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 22:30:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 22:30:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 22:30:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 22:35:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 22:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 22:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 22:40:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 22:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 21:45:06","window_to":"2026-08-23 22:45:06"} 
[2026-08-23 22:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 22:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 22:30:11","page":1} 
[2026-08-23 22:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 22:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 22:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 22:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 22:50:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 22:50:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 22:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 22:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 23:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 22:00:07","window_to":"2026-08-23 23:00:07"} 
[2026-08-23 23:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 22:00:07","window_to":"2026-08-23 23:00:07"} 
[2026-08-23 23:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-23 23:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-23 23:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 22:45:09","page":1} 
[2026-08-23 23:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 23:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 23:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 23:00:14] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-23 22:00:14","window_to":"2026-08-23 23:00:14"} 
[2026-08-23 23:00:14] local.INFO: TikTok webhook health check completed successfully  
[2026-08-23 23:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 23:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 23:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 23:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 23:10:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 23:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 22:15:06","window_to":"2026-08-23 23:15:06"} 
[2026-08-23 23:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 23:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 23:00:13","page":1} 
[2026-08-23 23:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 23:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 23:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 23:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 23:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 23:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 23:25:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 23:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 23:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 22:30:06","window_to":"2026-08-23 23:30:07"} 
[2026-08-23 23:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-23 23:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 23:15:09","page":1} 
[2026-08-23 23:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 23:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 23:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 23:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 23:35:06] local.INFO: Webhook retries processed successfully  
[2026-08-23 23:35:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 23:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 23:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 23:45:07] local.INFO: Webhook retries processed successfully  
[2026-08-23 23:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 22:45:06","window_to":"2026-08-23 23:45:07"} 
[2026-08-23 23:45:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 23:30:10","page":1} 
[2026-08-23 23:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-23 23:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-23 23:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-23 23:45:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 23:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 23:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-23 23:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-23 23:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 00:00:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 23:00:08","window_to":"2026-08-24 00:00:08"} 
[2026-08-24 00:00:09] local.INFO: Commission cleanup completed successfully  
[2026-08-24 00:00:13] local.INFO: Student payment status check completed successfully  
[2026-08-24 00:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 23:00:13","window_to":"2026-08-24 00:00:13"} 
[2026-08-24 00:00:14] local.INFO: Webhook health check completed successfully  
[2026-08-24 00:00:14] local.INFO: Webhook retries processed successfully  
[2026-08-24 00:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-23 23:45:10","page":1} 
[2026-08-24 00:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 00:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 00:00:15] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 00:00:16] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-23 23:00:16","window_to":"2026-08-24 00:00:16"} 
[2026-08-24 00:00:16] local.INFO: TikTok webhook health check completed successfully  
[2026-08-24 00:00:16] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 00:00:18] local.INFO: Student payment status check completed successfully  
[2026-08-24 00:05:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 00:05:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 00:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 00:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 00:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 23:15:06","window_to":"2026-08-24 00:15:06"} 
[2026-08-24 00:15:07] local.INFO: Webhook retries processed successfully  
[2026-08-24 00:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 00:00:15","page":1} 
[2026-08-24 00:15:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 00:15:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 00:15:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 00:15:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 00:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 00:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 00:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 00:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 00:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 00:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 23:30:06","window_to":"2026-08-24 00:30:06"} 
[2026-08-24 00:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 00:15:10","page":1} 
[2026-08-24 00:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 00:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 00:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 00:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 00:35:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 00:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 00:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 00:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 00:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-23 23:45:06","window_to":"2026-08-24 00:45:06"} 
[2026-08-24 00:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 00:45:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 00:30:09","page":1} 
[2026-08-24 00:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 00:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 00:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 00:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 00:50:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 00:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 00:55:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 00:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 01:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 00:00:07","window_to":"2026-08-24 01:00:07"} 
[2026-08-24 01:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 00:00:07","window_to":"2026-08-24 01:00:07"} 
[2026-08-24 01:00:08] local.INFO: Webhook health check completed successfully  
[2026-08-24 01:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-24 01:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 00:45:10","page":1} 
[2026-08-24 01:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 01:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 01:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 01:00:14] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-24 00:00:14","window_to":"2026-08-24 01:00:14"} 
[2026-08-24 01:00:14] local.INFO: TikTok webhook health check completed successfully  
[2026-08-24 01:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 01:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 01:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 01:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 01:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 01:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 00:15:05","window_to":"2026-08-24 01:15:05"} 
[2026-08-24 01:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 01:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 01:00:13","page":1} 
[2026-08-24 01:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 01:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 01:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 01:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 01:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 01:20:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 01:25:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 01:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 01:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 00:30:06","window_to":"2026-08-24 01:30:06"} 
[2026-08-24 01:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-24 01:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 01:15:08","page":1} 
[2026-08-24 01:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 01:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 01:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 01:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 01:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 01:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 01:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 01:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 01:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 00:45:06","window_to":"2026-08-24 01:45:06"} 
[2026-08-24 01:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 01:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 01:30:10","page":1} 
[2026-08-24 01:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 01:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 01:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 01:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 01:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 01:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 01:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 01:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 02:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 01:00:06","window_to":"2026-08-24 02:00:06"} 
[2026-08-24 02:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 01:00:07","window_to":"2026-08-24 02:00:07"} 
[2026-08-24 02:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-24 02:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-24 02:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 01:45:09","page":1} 
[2026-08-24 02:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 02:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 02:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 02:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-24 01:00:12","window_to":"2026-08-24 02:00:12"} 
[2026-08-24 02:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-24 02:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 02:05:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 02:05:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 02:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 02:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 02:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 01:15:06","window_to":"2026-08-24 02:15:06"} 
[2026-08-24 02:15:07] local.INFO: Webhook retries processed successfully  
[2026-08-24 02:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 02:00:11","page":1} 
[2026-08-24 02:15:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 02:15:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 02:15:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 02:15:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 02:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 02:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 02:25:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 02:25:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 02:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 01:30:06","window_to":"2026-08-24 02:30:06"} 
[2026-08-24 02:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 02:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 02:15:10","page":1} 
[2026-08-24 02:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 02:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 02:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 02:30:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 02:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 02:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 02:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 02:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 02:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 01:45:06","window_to":"2026-08-24 02:45:06"} 
[2026-08-24 02:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 02:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 02:30:10","page":1} 
[2026-08-24 02:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 02:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 02:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 02:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 02:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 02:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 02:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 02:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 03:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 02:00:07","window_to":"2026-08-24 03:00:07"} 
[2026-08-24 03:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 02:00:07","window_to":"2026-08-24 03:00:07"} 
[2026-08-24 03:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-24 03:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-24 03:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 02:45:09","page":1} 
[2026-08-24 03:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 03:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 03:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 03:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-24 02:00:12","window_to":"2026-08-24 03:00:12"} 
[2026-08-24 03:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-24 03:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 03:05:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 03:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 03:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 03:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 03:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 03:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 02:15:05","window_to":"2026-08-24 03:15:06"} 
[2026-08-24 03:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 03:00:11","page":1} 
[2026-08-24 03:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 03:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 03:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 03:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 03:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 03:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 03:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 03:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 03:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 02:30:07","window_to":"2026-08-24 03:30:07"} 
[2026-08-24 03:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-24 03:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 03:15:09","page":1} 
[2026-08-24 03:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 03:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 03:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 03:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 03:35:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 03:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 03:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 03:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 03:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 03:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 02:45:06","window_to":"2026-08-24 03:45:06"} 
[2026-08-24 03:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 03:30:10","page":1} 
[2026-08-24 03:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 03:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 03:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 03:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 03:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 03:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 03:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 03:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 04:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 03:00:07","window_to":"2026-08-24 04:00:07"} 
[2026-08-24 04:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 03:00:07","window_to":"2026-08-24 04:00:07"} 
[2026-08-24 04:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-24 04:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-24 04:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 03:45:09","page":1} 
[2026-08-24 04:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 04:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 04:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 04:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-24 03:00:13","window_to":"2026-08-24 04:00:13"} 
[2026-08-24 04:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-24 04:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 04:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 04:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 04:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 04:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 04:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 03:15:06","window_to":"2026-08-24 04:15:06"} 
[2026-08-24 04:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 04:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 04:00:12","page":1} 
[2026-08-24 04:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 04:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 04:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 04:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 04:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 04:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 04:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 04:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 04:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 04:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 03:30:06","window_to":"2026-08-24 04:30:06"} 
[2026-08-24 04:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 04:15:10","page":1} 
[2026-08-24 04:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 04:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 04:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 04:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 04:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 04:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 04:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 04:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 04:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 03:45:06","window_to":"2026-08-24 04:45:06"} 
[2026-08-24 04:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 04:45:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 04:30:10","page":1} 
[2026-08-24 04:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 04:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 04:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 04:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 04:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 04:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 04:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 04:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 05:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 04:00:07","window_to":"2026-08-24 05:00:07"} 
[2026-08-24 05:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 04:00:07","window_to":"2026-08-24 05:00:07"} 
[2026-08-24 05:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-24 05:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-24 05:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 04:45:10","page":1} 
[2026-08-24 05:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 05:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 05:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 05:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-24 04:00:12","window_to":"2026-08-24 05:00:12"} 
[2026-08-24 05:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-24 05:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 05:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 05:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 05:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 05:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 05:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 04:15:06","window_to":"2026-08-24 05:15:06"} 
[2026-08-24 05:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 05:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 05:00:11","page":1} 
[2026-08-24 05:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 05:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 05:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 05:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 05:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 05:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 05:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 05:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 05:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 04:30:07","window_to":"2026-08-24 05:30:07"} 
[2026-08-24 05:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-24 05:30:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 05:15:09","page":1} 
[2026-08-24 05:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 05:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 05:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 05:30:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 05:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 05:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 05:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 05:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 05:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 04:45:05","window_to":"2026-08-24 05:45:05"} 
[2026-08-24 05:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 05:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 05:30:11","page":1} 
[2026-08-24 05:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 05:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 05:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 05:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 05:50:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 05:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 05:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 05:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 06:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 05:00:07","window_to":"2026-08-24 06:00:07"} 
[2026-08-24 06:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 05:00:07","window_to":"2026-08-24 06:00:07"} 
[2026-08-24 06:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-24 06:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-24 06:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 05:45:08","page":1} 
[2026-08-24 06:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 06:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 06:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 06:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-24 05:00:13","window_to":"2026-08-24 06:00:13"} 
[2026-08-24 06:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-24 06:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 06:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 06:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 06:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 06:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 06:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 05:15:05","window_to":"2026-08-24 06:15:05"} 
[2026-08-24 06:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 06:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 06:00:12","page":1} 
[2026-08-24 06:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 06:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 06:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 06:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 06:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 06:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 06:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 06:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 06:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 05:30:05","window_to":"2026-08-24 06:30:05"} 
[2026-08-24 06:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 06:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 06:15:08","page":1} 
[2026-08-24 06:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 06:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 06:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 06:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 06:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 06:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 06:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 06:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 06:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 06:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 05:45:05","window_to":"2026-08-24 06:45:05"} 
[2026-08-24 06:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 06:30:09","page":1} 
[2026-08-24 06:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 06:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 06:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 06:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 06:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 06:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 06:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 06:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 07:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 06:00:06","window_to":"2026-08-24 07:00:06"} 
[2026-08-24 07:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-24 07:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 06:00:06","window_to":"2026-08-24 07:00:06"} 
[2026-08-24 07:00:09] local.INFO: Webhook retries processed successfully  
[2026-08-24 07:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 06:45:08","page":1} 
[2026-08-24 07:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 07:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 07:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 07:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-24 06:00:11","window_to":"2026-08-24 07:00:11"} 
[2026-08-24 07:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-24 07:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 07:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 07:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 07:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 07:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 07:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 06:15:05","window_to":"2026-08-24 07:15:05"} 
[2026-08-24 07:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 07:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 07:00:10","page":1} 
[2026-08-24 07:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 07:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 07:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 07:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 07:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 07:20:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 07:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 07:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 07:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 07:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 06:30:06","window_to":"2026-08-24 07:30:06"} 
[2026-08-24 07:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 07:15:08","page":1} 
[2026-08-24 07:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 07:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 07:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 07:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 07:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 07:35:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 07:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 07:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 07:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 07:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 06:45:05","window_to":"2026-08-24 07:45:05"} 
[2026-08-24 07:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 07:30:09","page":1} 
[2026-08-24 07:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 07:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 07:45:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 07:45:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 07:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 07:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 07:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 07:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 08:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 07:00:06","window_to":"2026-08-24 08:00:06"} 
[2026-08-24 08:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 07:00:06","window_to":"2026-08-24 08:00:06"} 
[2026-08-24 08:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-24 08:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-24 08:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 07:45:07","page":1} 
[2026-08-24 08:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 08:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 08:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 08:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-24 07:00:11","window_to":"2026-08-24 08:00:11"} 
[2026-08-24 08:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-24 08:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 08:00:13] local.INFO: Student payment reminder notifications sent successfully  
[2026-08-24 08:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 08:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 08:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 08:10:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 08:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 07:15:05","window_to":"2026-08-24 08:15:05"} 
[2026-08-24 08:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 08:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 08:00:11","page":1} 
[2026-08-24 08:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 08:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 08:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 08:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 08:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 08:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 08:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 08:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 08:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 07:30:05","window_to":"2026-08-24 08:30:05"} 
[2026-08-24 08:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 08:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 08:15:07","page":1} 
[2026-08-24 08:30:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 08:30:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 08:30:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 08:30:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 08:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 08:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 08:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 08:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 08:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 07:45:05","window_to":"2026-08-24 08:45:05"} 
[2026-08-24 08:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 08:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 08:30:08","page":1} 
[2026-08-24 08:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 08:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 08:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 08:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 08:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 08:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 08:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 08:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 09:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 08:00:06","window_to":"2026-08-24 09:00:06"} 
[2026-08-24 09:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 08:00:07","window_to":"2026-08-24 09:00:07"} 
[2026-08-24 09:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-24 09:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-24 09:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 08:45:08","page":1} 
[2026-08-24 09:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 09:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 09:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 09:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-24 08:00:11","window_to":"2026-08-24 09:00:11"} 
[2026-08-24 09:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-24 09:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 09:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 09:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 09:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 09:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 09:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 09:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 08:15:05","window_to":"2026-08-24 09:15:05"} 
[2026-08-24 09:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 09:00:11","page":1} 
[2026-08-24 09:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 09:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 09:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 09:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 09:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 09:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 09:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 09:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 09:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 09:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 08:30:05","window_to":"2026-08-24 09:30:05"} 
[2026-08-24 09:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 09:15:08","page":1} 
[2026-08-24 09:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 09:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 09:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 09:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 09:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 09:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 09:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 09:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 09:45:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 08:45:04","window_to":"2026-08-24 09:45:04"} 
[2026-08-24 09:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 09:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 09:30:09","page":1} 
[2026-08-24 09:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 09:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 09:45:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 09:45:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 09:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 09:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 09:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 09:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 10:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 09:00:05","window_to":"2026-08-24 10:00:05"} 
[2026-08-24 10:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-24 10:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 09:00:06","window_to":"2026-08-24 10:00:06"} 
[2026-08-24 10:00:09] local.INFO: Webhook retries processed successfully  
[2026-08-24 10:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 09:45:07","page":1} 
[2026-08-24 10:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 10:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 10:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 10:00:10] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-24 09:00:10","window_to":"2026-08-24 10:00:10"} 
[2026-08-24 10:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-24 10:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 10:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 10:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 10:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 10:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 10:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 09:15:04","window_to":"2026-08-24 10:15:04"} 
[2026-08-24 10:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 10:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 10:00:10","page":1} 
[2026-08-24 10:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 10:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 10:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 10:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 10:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 10:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 10:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 10:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 10:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 09:30:05","window_to":"2026-08-24 10:30:05"} 
[2026-08-24 10:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 10:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 10:15:08","page":1} 
[2026-08-24 10:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 10:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 10:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 10:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 10:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 10:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 10:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 10:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 10:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 09:45:05","window_to":"2026-08-24 10:45:05"} 
[2026-08-24 10:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 10:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 10:30:09","page":1} 
[2026-08-24 10:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 10:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 10:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 10:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 10:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 10:50:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 10:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 10:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 11:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 10:00:06","window_to":"2026-08-24 11:00:06"} 
[2026-08-24 11:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 10:00:06","window_to":"2026-08-24 11:00:06"} 
[2026-08-24 11:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-24 11:00:09] local.INFO: Webhook retries processed successfully  
[2026-08-24 11:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 10:45:08","page":1} 
[2026-08-24 11:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 11:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 11:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 11:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-24 10:00:11","window_to":"2026-08-24 11:00:11"} 
[2026-08-24 11:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-24 11:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 11:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 11:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 11:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 11:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 11:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 10:15:05","window_to":"2026-08-24 11:15:05"} 
[2026-08-24 11:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 11:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 11:00:10","page":1} 
[2026-08-24 11:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 11:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 11:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 11:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 11:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 11:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 11:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 11:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 11:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 10:30:05","window_to":"2026-08-24 11:30:05"} 
[2026-08-24 11:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 11:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 11:15:08","page":1} 
[2026-08-24 11:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 11:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 11:30:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 11:30:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 11:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 11:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 11:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 11:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 11:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 10:45:05","window_to":"2026-08-24 11:45:05"} 
[2026-08-24 11:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 11:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 11:30:08","page":1} 
[2026-08-24 11:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 11:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 11:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 11:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 11:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 11:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 11:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 11:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 12:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 11:00:06","window_to":"2026-08-24 12:00:06"} 
[2026-08-24 12:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-24 12:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 11:00:06","window_to":"2026-08-24 12:00:06"} 
[2026-08-24 12:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-24 12:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 11:45:08","page":1} 
[2026-08-24 12:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 12:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 12:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 12:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-24 11:00:11","window_to":"2026-08-24 12:00:11"} 
[2026-08-24 12:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-24 12:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 12:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 12:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 12:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 12:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 12:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 11:15:05","window_to":"2026-08-24 12:15:05"} 
[2026-08-24 12:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 12:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 12:00:10","page":1} 
[2026-08-24 12:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 12:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 12:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 12:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 12:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 12:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 12:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 12:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 12:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 12:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 11:30:06","window_to":"2026-08-24 12:30:06"} 
[2026-08-24 12:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 12:15:08","page":1} 
[2026-08-24 12:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 12:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 12:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 12:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 12:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 12:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 12:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 12:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 12:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 11:45:05","window_to":"2026-08-24 12:45:06"} 
[2026-08-24 12:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 12:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 12:30:09","page":1} 
[2026-08-24 12:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 12:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 12:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 12:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 12:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 12:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 12:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 12:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 13:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 12:00:06","window_to":"2026-08-24 13:00:06"} 
[2026-08-24 13:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 12:00:07","window_to":"2026-08-24 13:00:07"} 
[2026-08-24 13:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-24 13:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-24 13:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 12:45:09","page":1} 
[2026-08-24 13:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 13:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 13:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 13:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-24 12:00:12","window_to":"2026-08-24 13:00:12"} 
[2026-08-24 13:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-24 13:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 13:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 13:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 13:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 13:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 13:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 13:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 12:15:05","window_to":"2026-08-24 13:15:05"} 
[2026-08-24 13:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 13:00:11","page":1} 
[2026-08-24 13:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 13:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 13:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 13:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 13:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 13:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 13:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 13:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 13:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 12:30:05","window_to":"2026-08-24 13:30:05"} 
[2026-08-24 13:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 13:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 13:15:08","page":1} 
[2026-08-24 13:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 13:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 13:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 13:30:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 13:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 13:35:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 13:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 13:40:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 13:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 13:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 12:45:05","window_to":"2026-08-24 13:45:05"} 
[2026-08-24 13:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 13:30:08","page":1} 
[2026-08-24 13:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 13:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 13:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 13:45:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 13:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 13:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 13:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 13:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 14:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 13:00:06","window_to":"2026-08-24 14:00:06"} 
[2026-08-24 14:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 13:00:06","window_to":"2026-08-24 14:00:06"} 
[2026-08-24 14:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-24 14:00:09] local.INFO: Webhook retries processed successfully  
[2026-08-24 14:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 13:45:07","page":1} 
[2026-08-24 14:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 14:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 14:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 14:00:10] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-24 13:00:10","window_to":"2026-08-24 14:00:10"} 
[2026-08-24 14:00:10] local.INFO: TikTok webhook health check completed successfully  
[2026-08-24 14:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 14:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 14:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 14:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 14:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 14:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 14:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 13:15:05","window_to":"2026-08-24 14:15:05"} 
[2026-08-24 14:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 14:00:10","page":1} 
[2026-08-24 14:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 14:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 14:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 14:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 14:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 14:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 14:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 14:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 14:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 13:30:05","window_to":"2026-08-24 14:30:05"} 
[2026-08-24 14:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 14:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 14:15:07","page":1} 
[2026-08-24 14:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 14:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 14:30:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 14:30:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 14:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 14:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 14:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 14:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 14:45:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 13:45:04","window_to":"2026-08-24 14:45:04"} 
[2026-08-24 14:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 14:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 14:30:08","page":1} 
[2026-08-24 14:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 14:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 14:45:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 14:45:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 14:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 14:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 14:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 14:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 15:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 14:00:05","window_to":"2026-08-24 15:00:05"} 
[2026-08-24 15:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-24 15:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 14:00:06","window_to":"2026-08-24 15:00:06"} 
[2026-08-24 15:00:09] local.INFO: Webhook retries processed successfully  
[2026-08-24 15:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 14:45:07","page":1} 
[2026-08-24 15:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 15:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 15:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 15:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-24 14:00:11","window_to":"2026-08-24 15:00:11"} 
[2026-08-24 15:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-24 15:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 15:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 15:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 15:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 15:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 15:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 14:15:05","window_to":"2026-08-24 15:15:05"} 
[2026-08-24 15:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 15:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 15:00:10","page":1} 
[2026-08-24 15:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 15:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 15:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 15:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 15:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 15:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 15:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 15:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 15:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 14:30:05","window_to":"2026-08-24 15:30:05"} 
[2026-08-24 15:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 15:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 15:15:08","page":1} 
[2026-08-24 15:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 15:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 15:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 15:30:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 15:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 15:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 15:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 15:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 15:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 14:45:05","window_to":"2026-08-24 15:45:05"} 
[2026-08-24 15:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 15:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 15:30:08","page":1} 
[2026-08-24 15:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 15:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 15:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 15:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 15:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 15:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 15:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 15:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 16:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 15:00:06","window_to":"2026-08-24 16:00:06"} 
[2026-08-24 16:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 15:00:06","window_to":"2026-08-24 16:00:06"} 
[2026-08-24 16:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-24 16:00:09] local.INFO: Webhook retries processed successfully  
[2026-08-24 16:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 15:45:09","page":1} 
[2026-08-24 16:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 16:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 16:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 16:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-24 15:00:11","window_to":"2026-08-24 16:00:11"} 
[2026-08-24 16:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-24 16:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 16:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 16:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 16:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 16:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 16:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 15:15:05","window_to":"2026-08-24 16:15:05"} 
[2026-08-24 16:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 16:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 16:00:10","page":1} 
[2026-08-24 16:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 16:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 16:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 16:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 16:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 16:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 16:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 16:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 16:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 15:30:05","window_to":"2026-08-24 16:30:05"} 
[2026-08-24 16:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 16:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 16:15:08","page":1} 
[2026-08-24 16:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 16:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 16:30:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 16:30:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 16:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 16:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 16:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 16:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 16:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 15:45:05","window_to":"2026-08-24 16:45:05"} 
[2026-08-24 16:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 16:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 16:30:08","page":1} 
[2026-08-24 16:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 16:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 16:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 16:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 16:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 16:50:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 16:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 16:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 17:00:06] local.INFO: Staff auto-checkout completed successfully  
[2026-08-24 17:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 16:00:05","window_to":"2026-08-24 17:00:06"} 
[2026-08-24 17:00:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 16:00:09","window_to":"2026-08-24 17:00:09"} 
[2026-08-24 17:00:09] local.INFO: Webhook health check completed successfully  
[2026-08-24 17:00:09] local.INFO: Webhook retries processed successfully  
[2026-08-24 17:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 16:45:09","page":1} 
[2026-08-24 17:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 17:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 17:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 17:00:10] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-24 16:00:10","window_to":"2026-08-24 17:00:10"} 
[2026-08-24 17:00:10] local.INFO: TikTok webhook health check completed successfully  
[2026-08-24 17:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 17:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 17:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 17:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 17:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 17:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 16:15:05","window_to":"2026-08-24 17:15:05"} 
[2026-08-24 17:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 17:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 17:00:10","page":1} 
[2026-08-24 17:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 17:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 17:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 17:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 17:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 17:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 17:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 17:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 17:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 16:30:05","window_to":"2026-08-24 17:30:05"} 
[2026-08-24 17:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 17:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 17:15:08","page":1} 
[2026-08-24 17:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 17:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 17:30:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 17:30:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 17:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 17:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 17:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 17:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 17:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 16:45:05","window_to":"2026-08-24 17:45:05"} 
[2026-08-24 17:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 17:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 17:30:08","page":1} 
[2026-08-24 17:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 17:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 17:45:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 17:45:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 17:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 17:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 17:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 17:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 18:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 17:00:06","window_to":"2026-08-24 18:00:06"} 
[2026-08-24 18:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 17:00:06","window_to":"2026-08-24 18:00:06"} 
[2026-08-24 18:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-24 18:00:09] local.INFO: Webhook retries processed successfully  
[2026-08-24 18:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 17:45:07","page":1} 
[2026-08-24 18:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 18:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 18:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 18:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-24 17:00:11","window_to":"2026-08-24 18:00:11"} 
[2026-08-24 18:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-24 18:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 18:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 18:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 18:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 18:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 18:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 18:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 17:15:05","window_to":"2026-08-24 18:15:05"} 
[2026-08-24 18:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 18:00:10","page":1} 
[2026-08-24 18:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 18:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 18:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 18:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 18:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 18:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 18:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 18:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 18:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 17:30:05","window_to":"2026-08-24 18:30:05"} 
[2026-08-24 18:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 18:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 18:15:08","page":1} 
[2026-08-24 18:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 18:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 18:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 18:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 18:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 18:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 18:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 18:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 18:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 18:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 17:45:05","window_to":"2026-08-24 18:45:05"} 
[2026-08-24 18:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 18:30:09","page":1} 
[2026-08-24 18:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 18:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 18:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 18:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 18:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 18:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 18:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 18:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 19:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 18:00:06","window_to":"2026-08-24 19:00:06"} 
[2026-08-24 19:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 18:00:06","window_to":"2026-08-24 19:00:06"} 
[2026-08-24 19:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-24 19:00:09] local.INFO: Webhook retries processed successfully  
[2026-08-24 19:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 18:45:08","page":1} 
[2026-08-24 19:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 19:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 19:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 19:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-24 18:00:11","window_to":"2026-08-24 19:00:11"} 
[2026-08-24 19:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-24 19:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 19:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 19:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 19:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 19:10:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 19:15:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 19:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 18:15:05","window_to":"2026-08-24 19:15:05"} 
[2026-08-24 19:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 19:00:10","page":1} 
[2026-08-24 19:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 19:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 19:15:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 19:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 19:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 19:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 19:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 19:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 19:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 18:30:05","window_to":"2026-08-24 19:30:05"} 
[2026-08-24 19:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 19:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 19:15:07","page":1} 
[2026-08-24 19:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 19:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 19:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 19:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 19:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 19:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 19:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 19:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 19:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 18:45:05","window_to":"2026-08-24 19:45:05"} 
[2026-08-24 19:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 19:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 19:30:09","page":1} 
[2026-08-24 19:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 19:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 19:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 19:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 19:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 19:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 19:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 19:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 20:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 19:00:06","window_to":"2026-08-24 20:00:06"} 
[2026-08-24 20:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 19:00:06","window_to":"2026-08-24 20:00:06"} 
[2026-08-24 20:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-24 20:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-24 20:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 19:45:08","page":1} 
[2026-08-24 20:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 20:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 20:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 20:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-24 19:00:11","window_to":"2026-08-24 20:00:11"} 
[2026-08-24 20:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-24 20:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 20:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 20:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 20:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 20:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 20:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 19:15:05","window_to":"2026-08-24 20:15:05"} 
[2026-08-24 20:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 20:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 20:00:10","page":1} 
[2026-08-24 20:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 20:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 20:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 20:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 20:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 20:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 20:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 20:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 20:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 19:30:06","window_to":"2026-08-24 20:30:06"} 
[2026-08-24 20:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 20:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 20:15:08","page":1} 
[2026-08-24 20:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 20:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 20:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 20:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 20:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 20:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 20:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 20:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 20:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 19:45:04","window_to":"2026-08-24 20:45:05"} 
[2026-08-24 20:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 20:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 20:30:09","page":1} 
[2026-08-24 20:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 20:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 20:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 20:45:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 20:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 20:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 20:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 20:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 21:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 20:00:06","window_to":"2026-08-24 21:00:06"} 
[2026-08-24 21:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 20:00:06","window_to":"2026-08-24 21:00:06"} 
[2026-08-24 21:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-24 21:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-24 21:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 20:45:07","page":1} 
[2026-08-24 21:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 21:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 21:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 21:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-24 20:00:11","window_to":"2026-08-24 21:00:11"} 
[2026-08-24 21:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-24 21:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 21:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 21:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 21:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 21:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 21:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 20:15:06","window_to":"2026-08-24 21:15:06"} 
[2026-08-24 21:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 21:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 21:00:10","page":1} 
[2026-08-24 21:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 21:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 21:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 21:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 21:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 21:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 21:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 21:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 21:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 21:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 20:30:06","window_to":"2026-08-24 21:30:06"} 
[2026-08-24 21:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 21:15:09","page":1} 
[2026-08-24 21:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 21:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 21:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 21:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 21:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 21:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 21:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 21:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 21:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 21:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 20:45:06","window_to":"2026-08-24 21:45:06"} 
[2026-08-24 21:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 21:30:10","page":1} 
[2026-08-24 21:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 21:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 21:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 21:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 21:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 21:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 21:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 21:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 22:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 21:00:06","window_to":"2026-08-24 22:00:06"} 
[2026-08-24 22:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-24 22:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 21:00:06","window_to":"2026-08-24 22:00:06"} 
[2026-08-24 22:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-24 22:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 21:45:08","page":1} 
[2026-08-24 22:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 22:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 22:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 22:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-24 21:00:11","window_to":"2026-08-24 22:00:11"} 
[2026-08-24 22:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-24 22:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 22:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 22:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 22:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 22:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 22:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 21:15:06","window_to":"2026-08-24 22:15:06"} 
[2026-08-24 22:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 22:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 22:00:10","page":1} 
[2026-08-24 22:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 22:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 22:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 22:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 22:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 22:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 22:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 22:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 22:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 21:30:05","window_to":"2026-08-24 22:30:05"} 
[2026-08-24 22:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-24 22:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 22:15:09","page":1} 
[2026-08-24 22:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 22:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 22:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 22:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 22:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 22:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 22:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 22:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 22:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 21:45:05","window_to":"2026-08-24 22:45:05"} 
[2026-08-24 22:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 22:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 22:30:09","page":1} 
[2026-08-24 22:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 22:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 22:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 22:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 22:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 22:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 22:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 22:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 23:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 22:00:06","window_to":"2026-08-24 23:00:06"} 
[2026-08-24 23:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 22:00:06","window_to":"2026-08-24 23:00:06"} 
[2026-08-24 23:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-24 23:00:09] local.INFO: Webhook retries processed successfully  
[2026-08-24 23:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 22:45:08","page":1} 
[2026-08-24 23:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 23:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 23:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 23:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-24 22:00:11","window_to":"2026-08-24 23:00:11"} 
[2026-08-24 23:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-24 23:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 23:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 23:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 23:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 23:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 23:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 23:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 22:15:05","window_to":"2026-08-24 23:15:05"} 
[2026-08-24 23:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 23:00:10","page":1} 
[2026-08-24 23:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 23:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 23:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 23:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 23:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 23:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 23:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 23:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 23:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 22:30:06","window_to":"2026-08-24 23:30:06"} 
[2026-08-24 23:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-24 23:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 23:15:08","page":1} 
[2026-08-24 23:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 23:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 23:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 23:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 23:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 23:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 23:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 23:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 23:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 22:45:05","window_to":"2026-08-24 23:45:05"} 
[2026-08-24 23:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 23:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 23:30:10","page":1} 
[2026-08-24 23:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-24 23:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-24 23:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-24 23:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 23:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-24 23:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-24 23:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-24 23:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 00:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 23:00:07","window_to":"2026-08-25 00:00:07"} 
[2026-08-25 00:00:07] local.INFO: Commission cleanup completed successfully  
[2026-08-25 00:00:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 23:00:11","window_to":"2026-08-25 00:00:11"} 
[2026-08-25 00:00:11] local.INFO: Webhook health check completed successfully  
[2026-08-25 00:00:11] local.INFO: Student payment status check completed successfully  
[2026-08-25 00:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-25 00:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-24 23:45:08","page":1} 
[2026-08-25 00:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 00:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 00:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 00:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-24 23:00:13","window_to":"2026-08-25 00:00:13"} 
[2026-08-25 00:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-25 00:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 00:00:15] local.INFO: Student payment status check completed successfully  
[2026-08-25 00:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 00:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 00:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 00:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 00:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 23:15:05","window_to":"2026-08-25 00:15:05"} 
[2026-08-25 00:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 00:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 00:00:13","page":1} 
[2026-08-25 00:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 00:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 00:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 00:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 00:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 00:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 00:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 00:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 00:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 00:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 23:30:05","window_to":"2026-08-25 00:30:06"} 
[2026-08-25 00:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 00:15:09","page":1} 
[2026-08-25 00:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 00:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 00:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 00:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 00:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-25 00:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 00:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 00:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 00:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-24 23:45:05","window_to":"2026-08-25 00:45:05"} 
[2026-08-25 00:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 00:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 00:30:09","page":1} 
[2026-08-25 00:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 00:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 00:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 00:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 00:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-25 00:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 00:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 00:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 01:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 00:00:06","window_to":"2026-08-25 01:00:06"} 
[2026-08-25 01:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 00:00:06","window_to":"2026-08-25 01:00:06"} 
[2026-08-25 01:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-25 01:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-25 01:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 00:45:08","page":1} 
[2026-08-25 01:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 01:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 01:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 01:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-25 00:00:12","window_to":"2026-08-25 01:00:12"} 
[2026-08-25 01:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-25 01:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 01:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-25 01:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 01:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-25 01:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 01:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 00:15:05","window_to":"2026-08-25 01:15:05"} 
[2026-08-25 01:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 01:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 01:00:11","page":1} 
[2026-08-25 01:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 01:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 01:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 01:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 01:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 01:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 01:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 01:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 01:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 00:30:05","window_to":"2026-08-25 01:30:05"} 
[2026-08-25 01:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 01:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 01:15:08","page":1} 
[2026-08-25 01:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 01:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 01:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 01:30:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 01:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 01:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 01:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 01:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 01:45:04] local.INFO: Webhook retries processed successfully  
[2026-08-25 01:45:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 00:45:04","window_to":"2026-08-25 01:45:04"} 
[2026-08-25 01:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 01:30:08","page":1} 
[2026-08-25 01:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 01:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 01:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 01:45:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 01:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 01:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 01:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 01:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 02:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 01:00:06","window_to":"2026-08-25 02:00:06"} 
[2026-08-25 02:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 01:00:06","window_to":"2026-08-25 02:00:06"} 
[2026-08-25 02:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-25 02:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-25 02:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 01:45:07","page":1} 
[2026-08-25 02:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 02:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 02:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 02:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-25 01:00:11","window_to":"2026-08-25 02:00:11"} 
[2026-08-25 02:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-25 02:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 02:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 02:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 02:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 02:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 02:15:04] local.INFO: Webhook retries processed successfully  
[2026-08-25 02:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 01:15:04","window_to":"2026-08-25 02:15:04"} 
[2026-08-25 02:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 02:00:10","page":1} 
[2026-08-25 02:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 02:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 02:15:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 02:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 02:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 02:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 02:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-25 02:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 02:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 01:30:05","window_to":"2026-08-25 02:30:05"} 
[2026-08-25 02:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 02:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 02:15:07","page":1} 
[2026-08-25 02:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 02:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 02:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 02:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 02:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 02:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 02:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 02:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 02:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 02:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 01:45:05","window_to":"2026-08-25 02:45:06"} 
[2026-08-25 02:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 02:30:09","page":1} 
[2026-08-25 02:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 02:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 02:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 02:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 02:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 02:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 02:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 02:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 03:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 02:00:06","window_to":"2026-08-25 03:00:06"} 
[2026-08-25 03:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 02:00:06","window_to":"2026-08-25 03:00:06"} 
[2026-08-25 03:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-25 03:00:09] local.INFO: Webhook retries processed successfully  
[2026-08-25 03:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 02:45:08","page":1} 
[2026-08-25 03:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 03:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 03:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 03:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-25 02:00:11","window_to":"2026-08-25 03:00:11"} 
[2026-08-25 03:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-25 03:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 03:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-25 03:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 03:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-25 03:10:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 03:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 02:15:05","window_to":"2026-08-25 03:15:05"} 
[2026-08-25 03:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 03:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 03:00:10","page":1} 
[2026-08-25 03:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 03:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 03:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 03:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 03:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 03:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 03:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-25 03:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 03:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 02:30:05","window_to":"2026-08-25 03:30:05"} 
[2026-08-25 03:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 03:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 03:15:08","page":1} 
[2026-08-25 03:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 03:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 03:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 03:30:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 03:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-25 03:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 03:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 03:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 03:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 02:45:06","window_to":"2026-08-25 03:45:06"} 
[2026-08-25 03:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 03:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 03:30:09","page":1} 
[2026-08-25 03:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 03:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 03:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 03:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 03:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 03:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 03:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 03:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 04:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 03:00:05","window_to":"2026-08-25 04:00:05"} 
[2026-08-25 04:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 03:00:05","window_to":"2026-08-25 04:00:05"} 
[2026-08-25 04:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-25 04:00:09] local.INFO: Webhook retries processed successfully  
[2026-08-25 04:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 03:45:09","page":1} 
[2026-08-25 04:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 04:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 04:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 04:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-25 03:00:11","window_to":"2026-08-25 04:00:11"} 
[2026-08-25 04:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-25 04:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 04:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 04:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 04:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-25 04:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 04:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 03:15:05","window_to":"2026-08-25 04:15:05"} 
[2026-08-25 04:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 04:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 04:00:10","page":1} 
[2026-08-25 04:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 04:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 04:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 04:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 04:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 04:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 04:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-25 04:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 04:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 04:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 03:30:06","window_to":"2026-08-25 04:30:06"} 
[2026-08-25 04:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 04:15:08","page":1} 
[2026-08-25 04:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 04:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 04:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 04:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 04:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-25 04:35:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 04:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 04:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 04:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 04:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 03:45:05","window_to":"2026-08-25 04:45:05"} 
[2026-08-25 04:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 04:30:09","page":1} 
[2026-08-25 04:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 04:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 04:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 04:45:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 04:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-25 04:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 04:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-25 04:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 05:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 04:00:05","window_to":"2026-08-25 05:00:06"} 
[2026-08-25 05:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 04:00:06","window_to":"2026-08-25 05:00:06"} 
[2026-08-25 05:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-25 05:00:09] local.INFO: Webhook retries processed successfully  
[2026-08-25 05:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 04:45:08","page":1} 
[2026-08-25 05:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 05:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 05:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 05:00:10] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-25 04:00:10","window_to":"2026-08-25 05:00:10"} 
[2026-08-25 05:00:10] local.INFO: TikTok webhook health check completed successfully  
[2026-08-25 05:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 05:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-25 05:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 05:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-25 05:10:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 05:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 04:15:04","window_to":"2026-08-25 05:15:04"} 
[2026-08-25 05:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 05:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 05:00:09","page":1} 
[2026-08-25 05:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 05:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 05:15:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 05:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 05:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 05:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 05:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-25 05:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 05:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 04:30:06","window_to":"2026-08-25 05:30:06"} 
[2026-08-25 05:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 05:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 05:15:07","page":1} 
[2026-08-25 05:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 05:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 05:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 05:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 05:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 05:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 05:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 05:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 05:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 05:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 04:45:06","window_to":"2026-08-25 05:45:06"} 
[2026-08-25 05:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 05:30:10","page":1} 
[2026-08-25 05:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 05:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 05:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 05:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 05:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 05:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 05:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-25 05:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 06:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 05:00:06","window_to":"2026-08-25 06:00:06"} 
[2026-08-25 06:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-25 06:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 05:00:06","window_to":"2026-08-25 06:00:06"} 
[2026-08-25 06:00:09] local.INFO: Webhook retries processed successfully  
[2026-08-25 06:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 05:45:08","page":1} 
[2026-08-25 06:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 06:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 06:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 06:00:10] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-25 05:00:10","window_to":"2026-08-25 06:00:10"} 
[2026-08-25 06:00:10] local.INFO: TikTok webhook health check completed successfully  
[2026-08-25 06:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 06:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 06:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 06:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 06:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 06:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 06:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 05:15:05","window_to":"2026-08-25 06:15:05"} 
[2026-08-25 06:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 06:00:10","page":1} 
[2026-08-25 06:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 06:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 06:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 06:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 06:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 06:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 06:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 06:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 06:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 06:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 05:30:05","window_to":"2026-08-25 06:30:05"} 
[2026-08-25 06:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 06:15:08","page":1} 
[2026-08-25 06:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 06:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 06:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 06:30:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 06:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-25 06:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 06:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-25 06:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 06:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 05:45:05","window_to":"2026-08-25 06:45:05"} 
[2026-08-25 06:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 06:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 06:30:08","page":1} 
[2026-08-25 06:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 06:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 06:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 06:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 06:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 06:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 06:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 06:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 07:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 06:00:05","window_to":"2026-08-25 07:00:06"} 
[2026-08-25 07:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 06:00:06","window_to":"2026-08-25 07:00:06"} 
[2026-08-25 07:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-25 07:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-25 07:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 06:45:08","page":1} 
[2026-08-25 07:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 07:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 07:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 07:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-25 06:00:11","window_to":"2026-08-25 07:00:11"} 
[2026-08-25 07:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-25 07:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 07:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 07:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 07:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-25 07:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 07:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 07:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 06:15:06","window_to":"2026-08-25 07:15:06"} 
[2026-08-25 07:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 07:00:10","page":1} 
[2026-08-25 07:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 07:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 07:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 07:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 07:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-25 07:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 07:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 07:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 07:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 06:30:06","window_to":"2026-08-25 07:30:06"} 
[2026-08-25 07:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 07:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 07:15:08","page":1} 
[2026-08-25 07:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 07:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 07:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 07:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 07:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-25 07:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 07:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 07:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 07:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 06:45:05","window_to":"2026-08-25 07:45:05"} 
[2026-08-25 07:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 07:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 07:30:09","page":1} 
[2026-08-25 07:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 07:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 07:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 07:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 07:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 07:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 07:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 07:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 08:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 07:00:07","window_to":"2026-08-25 08:00:07"} 
[2026-08-25 08:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 07:00:07","window_to":"2026-08-25 08:00:07"} 
[2026-08-25 08:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-25 08:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-25 08:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 07:45:08","page":1} 
[2026-08-25 08:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 08:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 08:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 08:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-25 07:00:11","window_to":"2026-08-25 08:00:11"} 
[2026-08-25 08:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-25 08:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 08:00:13] local.INFO: Student payment reminder notifications sent successfully  
[2026-08-25 08:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 08:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 08:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 08:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 08:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 08:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 07:15:06","window_to":"2026-08-25 08:15:06"} 
[2026-08-25 08:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 08:00:11","page":1} 
[2026-08-25 08:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 08:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 08:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 08:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 08:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 08:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 08:25:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 08:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 08:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 08:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 07:30:05","window_to":"2026-08-25 08:30:05"} 
[2026-08-25 08:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 08:15:09","page":1} 
[2026-08-25 08:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 08:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 08:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 08:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 08:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 08:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 08:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 08:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 08:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 08:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 07:45:06","window_to":"2026-08-25 08:45:06"} 
[2026-08-25 08:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 08:30:09","page":1} 
[2026-08-25 08:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 08:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 08:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 08:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 08:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 08:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 08:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 08:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 09:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 08:00:06","window_to":"2026-08-25 09:00:06"} 
[2026-08-25 09:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-25 09:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 08:00:07","window_to":"2026-08-25 09:00:07"} 
[2026-08-25 09:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-25 09:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 08:45:09","page":1} 
[2026-08-25 09:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 09:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 09:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 09:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-25 08:00:12","window_to":"2026-08-25 09:00:12"} 
[2026-08-25 09:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-25 09:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 09:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-25 09:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 09:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 09:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 09:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 08:15:05","window_to":"2026-08-25 09:15:05"} 
[2026-08-25 09:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 09:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 09:00:11","page":1} 
[2026-08-25 09:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 09:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 09:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 09:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 09:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 09:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 09:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 09:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 09:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 08:30:07","window_to":"2026-08-25 09:30:07"} 
[2026-08-25 09:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-25 09:30:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 09:15:08","page":1} 
[2026-08-25 09:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 09:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 09:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 09:30:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 09:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-25 09:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 09:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 09:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 09:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 08:45:06","window_to":"2026-08-25 09:45:06"} 
[2026-08-25 09:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 09:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 09:30:11","page":1} 
[2026-08-25 09:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 09:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 09:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 09:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 09:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 09:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 09:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 09:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 10:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 09:00:07","window_to":"2026-08-25 10:00:07"} 
[2026-08-25 10:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 09:00:07","window_to":"2026-08-25 10:00:07"} 
[2026-08-25 10:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-25 10:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-25 10:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 09:45:09","page":1} 
[2026-08-25 10:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 10:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 10:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 10:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-25 09:00:12","window_to":"2026-08-25 10:00:12"} 
[2026-08-25 10:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-25 10:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 10:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 10:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 10:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 10:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 10:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 09:15:06","window_to":"2026-08-25 10:15:06"} 
[2026-08-25 10:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 10:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 10:00:11","page":1} 
[2026-08-25 10:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 10:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 10:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 10:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 10:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 10:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 10:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 10:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 10:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 09:30:06","window_to":"2026-08-25 10:30:06"} 
[2026-08-25 10:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-25 10:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 10:15:09","page":1} 
[2026-08-25 10:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 10:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 10:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 10:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 10:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 10:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 10:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 10:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 10:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 09:45:06","window_to":"2026-08-25 10:45:06"} 
[2026-08-25 10:45:07] local.INFO: Webhook retries processed successfully  
[2026-08-25 10:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 10:30:10","page":1} 
[2026-08-25 10:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 10:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 10:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 10:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 10:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 10:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 10:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 10:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 11:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 10:00:06","window_to":"2026-08-25 11:00:07"} 
[2026-08-25 11:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 10:00:07","window_to":"2026-08-25 11:00:07"} 
[2026-08-25 11:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-25 11:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-25 11:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 10:45:09","page":1} 
[2026-08-25 11:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 11:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 11:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 11:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-25 10:00:12","window_to":"2026-08-25 11:00:12"} 
[2026-08-25 11:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-25 11:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 11:05:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 11:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 11:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 11:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 11:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 10:15:05","window_to":"2026-08-25 11:15:05"} 
[2026-08-25 11:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 11:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 11:00:11","page":1} 
[2026-08-25 11:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 11:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 11:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 11:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 11:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 11:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 11:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 11:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 11:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 10:30:05","window_to":"2026-08-25 11:30:05"} 
[2026-08-25 11:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 11:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 11:15:08","page":1} 
[2026-08-25 11:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 11:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 11:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 11:30:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 11:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 11:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 11:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 11:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 11:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 10:45:06","window_to":"2026-08-25 11:45:06"} 
[2026-08-25 11:45:07] local.INFO: Webhook retries processed successfully  
[2026-08-25 11:45:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 11:30:09","page":1} 
[2026-08-25 11:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 11:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 11:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 11:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 11:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 11:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 11:55:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 11:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 12:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 11:00:07","window_to":"2026-08-25 12:00:07"} 
[2026-08-25 12:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-25 12:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 11:00:07","window_to":"2026-08-25 12:00:07"} 
[2026-08-25 12:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-25 12:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 11:45:10","page":1} 
[2026-08-25 12:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 12:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 12:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 12:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-25 11:00:13","window_to":"2026-08-25 12:00:13"} 
[2026-08-25 12:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-25 12:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 12:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 12:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 12:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 12:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 12:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 12:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 11:15:06","window_to":"2026-08-25 12:15:06"} 
[2026-08-25 12:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 12:00:12","page":1} 
[2026-08-25 12:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 12:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 12:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 12:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 12:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 12:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 12:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 12:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 12:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 11:30:05","window_to":"2026-08-25 12:30:06"} 
[2026-08-25 12:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 12:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 12:15:09","page":1} 
[2026-08-25 12:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 12:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 12:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 12:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 12:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 12:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 12:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 12:40:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 12:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 11:45:06","window_to":"2026-08-25 12:45:06"} 
[2026-08-25 12:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 12:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 12:30:10","page":1} 
[2026-08-25 12:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 12:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 12:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 12:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 12:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 12:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 12:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 12:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 13:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 12:00:06","window_to":"2026-08-25 13:00:06"} 
[2026-08-25 13:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 12:00:06","window_to":"2026-08-25 13:00:06"} 
[2026-08-25 13:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-25 13:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-25 13:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 12:45:09","page":1} 
[2026-08-25 13:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 13:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 13:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 13:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-25 12:00:11","window_to":"2026-08-25 13:00:11"} 
[2026-08-25 13:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-25 13:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 13:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 13:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 13:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 13:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 13:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 12:15:05","window_to":"2026-08-25 13:15:05"} 
[2026-08-25 13:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 13:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 13:00:10","page":1} 
[2026-08-25 13:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 13:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 13:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 13:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 13:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 13:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 13:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 13:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 13:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 13:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 12:30:06","window_to":"2026-08-25 13:30:06"} 
[2026-08-25 13:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 13:15:08","page":1} 
[2026-08-25 13:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 13:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 13:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 13:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 13:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 13:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 13:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 13:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 13:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 12:45:06","window_to":"2026-08-25 13:45:06"} 
[2026-08-25 13:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 13:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 13:30:09","page":1} 
[2026-08-25 13:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 13:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 13:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 13:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 13:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 13:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 13:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 13:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 14:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 13:00:06","window_to":"2026-08-25 14:00:06"} 
[2026-08-25 14:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 13:00:06","window_to":"2026-08-25 14:00:06"} 
[2026-08-25 14:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-25 14:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-25 14:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 13:45:09","page":1} 
[2026-08-25 14:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 14:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 14:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 14:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-25 13:00:12","window_to":"2026-08-25 14:00:12"} 
[2026-08-25 14:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-25 14:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 14:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 14:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 14:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-25 14:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 14:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 13:15:06","window_to":"2026-08-25 14:15:06"} 
[2026-08-25 14:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 14:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 14:00:11","page":1} 
[2026-08-25 14:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 14:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 14:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 14:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 14:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 14:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 14:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 14:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 14:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 13:30:06","window_to":"2026-08-25 14:30:06"} 
[2026-08-25 14:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 14:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 14:15:09","page":1} 
[2026-08-25 14:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 14:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 14:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 14:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 14:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 14:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 14:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 14:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 14:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 13:45:05","window_to":"2026-08-25 14:45:05"} 
[2026-08-25 14:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 14:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 14:30:10","page":1} 
[2026-08-25 14:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 14:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 14:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 14:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 14:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 14:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 14:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 14:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 15:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 14:00:07","window_to":"2026-08-25 15:00:07"} 
[2026-08-25 15:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 14:00:07","window_to":"2026-08-25 15:00:07"} 
[2026-08-25 15:00:08] local.INFO: Webhook health check completed successfully  
[2026-08-25 15:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-25 15:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 14:45:08","page":1} 
[2026-08-25 15:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 15:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 15:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 15:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-25 14:00:13","window_to":"2026-08-25 15:00:13"} 
[2026-08-25 15:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-25 15:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 15:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 15:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 15:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 15:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 15:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 15:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 14:15:05","window_to":"2026-08-25 15:15:05"} 
[2026-08-25 15:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 15:00:12","page":1} 
[2026-08-25 15:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 15:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 15:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 15:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 15:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 15:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 15:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 15:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 15:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 14:30:05","window_to":"2026-08-25 15:30:06"} 
[2026-08-25 15:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 15:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 15:15:08","page":1} 
[2026-08-25 15:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 15:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 15:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 15:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 15:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 15:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 15:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 15:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 15:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 15:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 14:45:05","window_to":"2026-08-25 15:45:06"} 
[2026-08-25 15:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 15:30:09","page":1} 
[2026-08-25 15:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 15:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 15:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 15:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 15:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-25 15:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 15:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 15:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 16:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 15:00:06","window_to":"2026-08-25 16:00:06"} 
[2026-08-25 16:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 15:00:06","window_to":"2026-08-25 16:00:06"} 
[2026-08-25 16:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-25 16:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-25 16:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 15:45:08","page":1} 
[2026-08-25 16:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 16:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 16:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 16:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-25 15:00:12","window_to":"2026-08-25 16:00:12"} 
[2026-08-25 16:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-25 16:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 16:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-25 16:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 16:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 16:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 16:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 15:15:05","window_to":"2026-08-25 16:15:05"} 
[2026-08-25 16:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 16:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 16:00:11","page":1} 
[2026-08-25 16:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 16:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 16:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 16:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 16:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 16:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 16:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 16:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 16:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 15:30:05","window_to":"2026-08-25 16:30:05"} 
[2026-08-25 16:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 16:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 16:15:08","page":1} 
[2026-08-25 16:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 16:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 16:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 16:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 16:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 16:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 16:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-25 16:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 16:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 16:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 15:45:06","window_to":"2026-08-25 16:45:06"} 
[2026-08-25 16:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 16:30:09","page":1} 
[2026-08-25 16:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 16:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 16:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 16:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 16:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 16:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 16:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 16:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 17:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 16:00:07","window_to":"2026-08-25 17:00:07"} 
[2026-08-25 17:00:07] local.INFO: Staff auto-checkout completed successfully  
[2026-08-25 17:00:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 16:00:11","window_to":"2026-08-25 17:00:11"} 
[2026-08-25 17:00:11] local.INFO: Webhook health check completed successfully  
[2026-08-25 17:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-25 17:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 16:45:09","page":1} 
[2026-08-25 17:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 17:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 17:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 17:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-25 16:00:13","window_to":"2026-08-25 17:00:13"} 
[2026-08-25 17:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-25 17:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 17:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 17:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 17:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 17:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 17:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 16:15:06","window_to":"2026-08-25 17:15:06"} 
[2026-08-25 17:15:07] local.INFO: Webhook retries processed successfully  
[2026-08-25 17:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 17:00:12","page":1} 
[2026-08-25 17:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 17:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 17:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 17:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 17:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 17:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 17:25:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 17:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 17:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 16:30:06","window_to":"2026-08-25 17:30:06"} 
[2026-08-25 17:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-25 17:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 17:15:09","page":1} 
[2026-08-25 17:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 17:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 17:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 17:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 17:35:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 17:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 17:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 17:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 17:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 17:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 16:45:06","window_to":"2026-08-25 17:45:06"} 
[2026-08-25 17:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 17:30:10","page":1} 
[2026-08-25 17:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 17:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 17:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 17:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 17:50:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 17:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 17:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 17:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 18:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 17:00:07","window_to":"2026-08-25 18:00:07"} 
[2026-08-25 18:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 17:00:07","window_to":"2026-08-25 18:00:07"} 
[2026-08-25 18:00:08] local.INFO: Webhook health check completed successfully  
[2026-08-25 18:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-25 18:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 17:45:09","page":1} 
[2026-08-25 18:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 18:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 18:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 18:00:14] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-25 17:00:14","window_to":"2026-08-25 18:00:14"} 
[2026-08-25 18:00:14] local.INFO: TikTok webhook health check completed successfully  
[2026-08-25 18:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 18:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 18:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 18:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 18:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 18:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 18:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 17:15:05","window_to":"2026-08-25 18:15:05"} 
[2026-08-25 18:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 18:00:13","page":1} 
[2026-08-25 18:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 18:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 18:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 18:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 18:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 18:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 18:25:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 18:25:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 18:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-25 18:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 17:30:07","window_to":"2026-08-25 18:30:07"} 
[2026-08-25 18:30:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 18:15:08","page":1} 
[2026-08-25 18:30:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 18:30:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 18:30:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 18:30:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 18:35:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 18:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 18:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 18:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 18:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 18:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 17:45:06","window_to":"2026-08-25 18:45:06"} 
[2026-08-25 18:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 18:30:11","page":1} 
[2026-08-25 18:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 18:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 18:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 18:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 18:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 18:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 18:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 18:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 19:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 18:00:07","window_to":"2026-08-25 19:00:07"} 
[2026-08-25 19:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 18:00:08","window_to":"2026-08-25 19:00:08"} 
[2026-08-25 19:00:08] local.INFO: Webhook health check completed successfully  
[2026-08-25 19:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-25 19:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 18:45:08","page":1} 
[2026-08-25 19:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 19:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 19:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 19:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-25 18:00:13","window_to":"2026-08-25 19:00:13"} 
[2026-08-25 19:00:14] local.INFO: TikTok webhook health check completed successfully  
[2026-08-25 19:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 19:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 19:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 19:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 19:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 19:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 19:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 18:15:06","window_to":"2026-08-25 19:15:06"} 
[2026-08-25 19:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 19:00:13","page":1} 
[2026-08-25 19:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 19:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 19:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 19:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 19:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 19:20:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 19:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 19:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 19:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-25 19:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 18:30:06","window_to":"2026-08-25 19:30:07"} 
[2026-08-25 19:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 19:15:09","page":1} 
[2026-08-25 19:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 19:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 19:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 19:30:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 19:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 19:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 19:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 19:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 19:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 18:45:05","window_to":"2026-08-25 19:45:05"} 
[2026-08-25 19:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 19:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 19:30:10","page":1} 
[2026-08-25 19:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 19:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 19:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 19:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 19:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 19:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 19:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 19:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 20:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 19:00:07","window_to":"2026-08-25 20:00:07"} 
[2026-08-25 20:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 19:00:07","window_to":"2026-08-25 20:00:07"} 
[2026-08-25 20:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-25 20:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-25 20:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 19:45:09","page":1} 
[2026-08-25 20:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 20:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 20:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 20:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-25 19:00:13","window_to":"2026-08-25 20:00:13"} 
[2026-08-25 20:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-25 20:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 20:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 20:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 20:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 20:10:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 20:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 20:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 19:15:06","window_to":"2026-08-25 20:15:06"} 
[2026-08-25 20:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 20:00:12","page":1} 
[2026-08-25 20:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 20:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 20:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 20:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 20:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 20:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 20:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 20:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 20:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 19:30:07","window_to":"2026-08-25 20:30:07"} 
[2026-08-25 20:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-25 20:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 20:15:09","page":1} 
[2026-08-25 20:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 20:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 20:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 20:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 20:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 20:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 20:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 20:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 20:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 20:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 19:45:06","window_to":"2026-08-25 20:45:06"} 
[2026-08-25 20:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 20:30:10","page":1} 
[2026-08-25 20:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 20:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 20:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 20:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 20:50:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 20:50:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 20:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 20:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 21:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 20:00:08","window_to":"2026-08-25 21:00:08"} 
[2026-08-25 21:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 20:00:08","window_to":"2026-08-25 21:00:08"} 
[2026-08-25 21:00:08] local.INFO: Webhook health check completed successfully  
[2026-08-25 21:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-25 21:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 20:45:09","page":1} 
[2026-08-25 21:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 21:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 21:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 21:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-25 20:00:13","window_to":"2026-08-25 21:00:13"} 
[2026-08-25 21:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-25 21:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 21:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 21:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 21:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 21:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 21:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 21:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 20:15:06","window_to":"2026-08-25 21:15:06"} 
[2026-08-25 21:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 21:00:13","page":1} 
[2026-08-25 21:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 21:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 21:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 21:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 21:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 21:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 21:25:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 21:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 21:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-25 21:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 20:30:07","window_to":"2026-08-25 21:30:07"} 
[2026-08-25 21:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 21:15:09","page":1} 
[2026-08-25 21:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 21:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 21:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 21:30:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 21:35:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 21:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 21:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 21:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 21:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 21:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 20:45:06","window_to":"2026-08-25 21:45:06"} 
[2026-08-25 21:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 21:30:10","page":1} 
[2026-08-25 21:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 21:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 21:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 21:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 21:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 21:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 21:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 21:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 22:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 21:00:06","window_to":"2026-08-25 22:00:06"} 
[2026-08-25 22:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-25 22:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 21:00:06","window_to":"2026-08-25 22:00:06"} 
[2026-08-25 22:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-25 22:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 21:45:09","page":1} 
[2026-08-25 22:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 22:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 22:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 22:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-25 21:00:12","window_to":"2026-08-25 22:00:12"} 
[2026-08-25 22:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-25 22:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 22:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 22:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 22:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-25 22:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 22:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 21:15:06","window_to":"2026-08-25 22:15:06"} 
[2026-08-25 22:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 22:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 22:00:11","page":1} 
[2026-08-25 22:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 22:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 22:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 22:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 22:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 22:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 22:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 22:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 22:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 21:30:07","window_to":"2026-08-25 22:30:07"} 
[2026-08-25 22:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-25 22:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 22:15:09","page":1} 
[2026-08-25 22:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 22:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 22:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 22:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 22:35:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 22:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 22:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 22:40:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 22:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 21:45:05","window_to":"2026-08-25 22:45:05"} 
[2026-08-25 22:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 22:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 22:30:10","page":1} 
[2026-08-25 22:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 22:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 22:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 22:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 22:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-25 22:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 22:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 22:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 23:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 22:00:06","window_to":"2026-08-25 23:00:06"} 
[2026-08-25 23:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 22:00:06","window_to":"2026-08-25 23:00:06"} 
[2026-08-25 23:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-25 23:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-25 23:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 22:45:08","page":1} 
[2026-08-25 23:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 23:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 23:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 23:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-25 22:00:11","window_to":"2026-08-25 23:00:11"} 
[2026-08-25 23:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-25 23:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 23:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-25 23:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 23:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 23:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 23:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 22:15:05","window_to":"2026-08-25 23:15:05"} 
[2026-08-25 23:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 23:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 23:00:11","page":1} 
[2026-08-25 23:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 23:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 23:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 23:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 23:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 23:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 23:25:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 23:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 23:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-25 23:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 22:30:06","window_to":"2026-08-25 23:30:07"} 
[2026-08-25 23:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 23:15:08","page":1} 
[2026-08-25 23:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 23:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 23:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 23:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 23:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 23:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 23:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-25 23:40:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 23:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 22:45:06","window_to":"2026-08-25 23:45:06"} 
[2026-08-25 23:45:07] local.INFO: Webhook retries processed successfully  
[2026-08-25 23:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 23:30:10","page":1} 
[2026-08-25 23:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-25 23:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-25 23:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-25 23:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 23:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 23:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-25 23:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-25 23:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 00:00:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 23:00:09","window_to":"2026-08-26 00:00:09"} 
[2026-08-26 00:00:09] local.INFO: Commission cleanup completed successfully  
[2026-08-26 00:00:13] local.INFO: Student payment status check completed successfully  
[2026-08-26 00:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 23:00:14","window_to":"2026-08-26 00:00:14"} 
[2026-08-26 00:00:14] local.INFO: Webhook health check completed successfully  
[2026-08-26 00:00:14] local.INFO: Webhook retries processed successfully  
[2026-08-26 00:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-25 23:45:09","page":1} 
[2026-08-26 00:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 00:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 00:00:15] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 00:00:16] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-25 23:00:16","window_to":"2026-08-26 00:00:16"} 
[2026-08-26 00:00:16] local.INFO: TikTok webhook health check completed successfully  
[2026-08-26 00:00:17] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 00:00:18] local.INFO: Student payment status check completed successfully  
[2026-08-26 00:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 00:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 00:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 00:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 00:15:07] local.INFO: Webhook retries processed successfully  
[2026-08-26 00:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 23:15:07","window_to":"2026-08-26 00:15:07"} 
[2026-08-26 00:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 00:00:15","page":1} 
[2026-08-26 00:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 00:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 00:15:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 00:15:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 00:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 00:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 00:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 00:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 00:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 23:30:06","window_to":"2026-08-26 00:30:06"} 
[2026-08-26 00:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 00:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 00:15:12","page":1} 
[2026-08-26 00:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 00:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 00:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 00:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 00:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 00:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 00:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 00:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 00:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-25 23:45:05","window_to":"2026-08-26 00:45:05"} 
[2026-08-26 00:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 00:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 00:30:10","page":1} 
[2026-08-26 00:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 00:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 00:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 00:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 00:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 00:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 00:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 00:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 01:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 00:00:07","window_to":"2026-08-26 01:00:07"} 
[2026-08-26 01:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 00:00:07","window_to":"2026-08-26 01:00:07"} 
[2026-08-26 01:00:08] local.INFO: Webhook health check completed successfully  
[2026-08-26 01:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-26 01:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 00:45:09","page":1} 
[2026-08-26 01:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 01:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 01:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 01:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-26 00:00:13","window_to":"2026-08-26 01:00:13"} 
[2026-08-26 01:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-26 01:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 01:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 01:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 01:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 01:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 01:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 01:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 00:15:05","window_to":"2026-08-26 01:15:05"} 
[2026-08-26 01:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 01:00:13","page":1} 
[2026-08-26 01:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 01:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 01:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 01:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 01:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 01:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 01:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 01:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 01:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 00:30:06","window_to":"2026-08-26 01:30:06"} 
[2026-08-26 01:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 01:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 01:15:08","page":1} 
[2026-08-26 01:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 01:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 01:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 01:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 01:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 01:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 01:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 01:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 01:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 00:45:06","window_to":"2026-08-26 01:45:06"} 
[2026-08-26 01:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 01:45:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 01:30:10","page":1} 
[2026-08-26 01:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 01:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 01:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 01:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 01:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 01:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 01:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 01:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 02:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 01:00:06","window_to":"2026-08-26 02:00:06"} 
[2026-08-26 02:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 01:00:06","window_to":"2026-08-26 02:00:06"} 
[2026-08-26 02:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-26 02:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-26 02:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 01:45:09","page":1} 
[2026-08-26 02:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 02:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 02:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 02:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-26 01:00:12","window_to":"2026-08-26 02:00:12"} 
[2026-08-26 02:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-26 02:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 02:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 02:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 02:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 02:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 02:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 01:15:05","window_to":"2026-08-26 02:15:05"} 
[2026-08-26 02:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 02:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 02:00:11","page":1} 
[2026-08-26 02:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 02:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 02:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 02:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 02:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 02:20:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 02:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 02:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 02:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 01:30:05","window_to":"2026-08-26 02:30:06"} 
[2026-08-26 02:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 02:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 02:15:08","page":1} 
[2026-08-26 02:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 02:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 02:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 02:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 02:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 02:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 02:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 02:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 02:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 01:45:05","window_to":"2026-08-26 02:45:05"} 
[2026-08-26 02:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 02:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 02:30:09","page":1} 
[2026-08-26 02:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 02:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 02:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 02:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 02:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 02:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 02:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 02:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 03:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 02:00:07","window_to":"2026-08-26 03:00:07"} 
[2026-08-26 03:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 02:00:07","window_to":"2026-08-26 03:00:07"} 
[2026-08-26 03:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-26 03:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-26 03:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 02:45:09","page":1} 
[2026-08-26 03:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 03:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 03:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 03:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-26 02:00:12","window_to":"2026-08-26 03:00:12"} 
[2026-08-26 03:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-26 03:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 03:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 03:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 03:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 03:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 03:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 02:15:05","window_to":"2026-08-26 03:15:05"} 
[2026-08-26 03:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 03:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 03:00:12","page":1} 
[2026-08-26 03:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 03:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 03:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 03:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 03:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 03:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 03:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 03:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 03:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 02:30:05","window_to":"2026-08-26 03:30:05"} 
[2026-08-26 03:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 03:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 03:15:09","page":1} 
[2026-08-26 03:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 03:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 03:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 03:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 03:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 03:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 03:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 03:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 03:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 02:45:05","window_to":"2026-08-26 03:45:05"} 
[2026-08-26 03:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 03:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 03:30:09","page":1} 
[2026-08-26 03:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 03:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 03:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 03:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 03:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 03:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 03:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 03:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 04:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 03:00:07","window_to":"2026-08-26 04:00:07"} 
[2026-08-26 04:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 03:00:07","window_to":"2026-08-26 04:00:07"} 
[2026-08-26 04:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-26 04:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-26 04:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 03:45:08","page":1} 
[2026-08-26 04:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 04:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 04:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 04:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-26 03:00:12","window_to":"2026-08-26 04:00:12"} 
[2026-08-26 04:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-26 04:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 04:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 04:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 04:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 04:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 04:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 03:15:06","window_to":"2026-08-26 04:15:06"} 
[2026-08-26 04:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 04:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 04:00:11","page":1} 
[2026-08-26 04:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 04:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 04:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 04:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 04:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 04:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 04:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 04:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 04:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 03:30:05","window_to":"2026-08-26 04:30:05"} 
[2026-08-26 04:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 04:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 04:15:09","page":1} 
[2026-08-26 04:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 04:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 04:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 04:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 04:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 04:35:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 04:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 04:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 04:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 04:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 03:45:05","window_to":"2026-08-26 04:45:05"} 
[2026-08-26 04:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 04:30:09","page":1} 
[2026-08-26 04:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 04:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 04:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 04:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 04:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 04:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 04:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 04:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 05:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 04:00:06","window_to":"2026-08-26 05:00:06"} 
[2026-08-26 05:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 04:00:06","window_to":"2026-08-26 05:00:06"} 
[2026-08-26 05:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-26 05:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-26 05:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 04:45:08","page":1} 
[2026-08-26 05:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 05:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 05:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 05:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-26 04:00:11","window_to":"2026-08-26 05:00:11"} 
[2026-08-26 05:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-26 05:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 05:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 05:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 05:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 05:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 05:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 04:15:05","window_to":"2026-08-26 05:15:05"} 
[2026-08-26 05:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 05:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 05:00:10","page":1} 
[2026-08-26 05:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 05:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 05:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 05:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 05:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 05:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 05:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 05:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 05:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 04:30:05","window_to":"2026-08-26 05:30:05"} 
[2026-08-26 05:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 05:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 05:15:08","page":1} 
[2026-08-26 05:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 05:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 05:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 05:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 05:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 05:35:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 05:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 05:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 05:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 04:45:05","window_to":"2026-08-26 05:45:05"} 
[2026-08-26 05:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 05:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 05:30:09","page":1} 
[2026-08-26 05:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 05:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 05:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 05:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 05:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 05:50:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 05:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 05:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 06:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 05:00:05","window_to":"2026-08-26 06:00:05"} 
[2026-08-26 06:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 05:00:05","window_to":"2026-08-26 06:00:05"} 
[2026-08-26 06:00:05] local.INFO: Webhook health check completed successfully  
[2026-08-26 06:00:09] local.INFO: Webhook retries processed successfully  
[2026-08-26 06:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 05:45:08","page":1} 
[2026-08-26 06:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 06:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 06:00:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 06:00:10] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-26 05:00:10","window_to":"2026-08-26 06:00:10"} 
[2026-08-26 06:00:10] local.INFO: TikTok webhook health check completed successfully  
[2026-08-26 06:00:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 06:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 06:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 06:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 06:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 06:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 05:15:06","window_to":"2026-08-26 06:15:06"} 
[2026-08-26 06:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 06:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 06:00:09","page":1} 
[2026-08-26 06:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 06:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 06:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 06:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 06:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 06:20:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 06:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 06:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 06:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 05:30:05","window_to":"2026-08-26 06:30:05"} 
[2026-08-26 06:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 06:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 06:15:08","page":1} 
[2026-08-26 06:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 06:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 06:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 06:30:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 06:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 06:35:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 06:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 06:40:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 06:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 06:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 05:45:05","window_to":"2026-08-26 06:45:05"} 
[2026-08-26 06:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 06:30:08","page":1} 
[2026-08-26 06:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 06:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 06:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 06:45:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 06:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 06:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 06:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 06:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 07:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 06:00:06","window_to":"2026-08-26 07:00:06"} 
[2026-08-26 07:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 06:00:06","window_to":"2026-08-26 07:00:06"} 
[2026-08-26 07:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-26 07:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-26 07:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 06:45:08","page":1} 
[2026-08-26 07:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 07:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 07:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 07:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-26 06:00:11","window_to":"2026-08-26 07:00:11"} 
[2026-08-26 07:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-26 07:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 07:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 07:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 07:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 07:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 07:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 06:15:05","window_to":"2026-08-26 07:15:05"} 
[2026-08-26 07:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 07:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 07:00:10","page":1} 
[2026-08-26 07:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 07:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 07:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 07:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 07:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 07:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 07:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 07:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 07:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 06:30:05","window_to":"2026-08-26 07:30:05"} 
[2026-08-26 07:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 07:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 07:15:08","page":1} 
[2026-08-26 07:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 07:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 07:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 07:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 07:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 07:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 07:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 07:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 07:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 07:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 06:45:05","window_to":"2026-08-26 07:45:05"} 
[2026-08-26 07:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 07:30:09","page":1} 
[2026-08-26 07:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 07:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 07:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 07:45:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 07:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 07:50:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 07:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 07:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 08:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 07:00:06","window_to":"2026-08-26 08:00:06"} 
[2026-08-26 08:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 07:00:07","window_to":"2026-08-26 08:00:07"} 
[2026-08-26 08:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-26 08:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-26 08:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 07:45:07","page":1} 
[2026-08-26 08:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 08:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 08:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 08:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-26 07:00:11","window_to":"2026-08-26 08:00:11"} 
[2026-08-26 08:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-26 08:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 08:00:13] local.INFO: Student payment reminder notifications sent successfully  
[2026-08-26 08:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 08:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 08:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 08:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 08:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 08:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 07:15:05","window_to":"2026-08-26 08:15:05"} 
[2026-08-26 08:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 08:00:11","page":1} 
[2026-08-26 08:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 08:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 08:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 08:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 08:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 08:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 08:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 08:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 08:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 08:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 07:30:05","window_to":"2026-08-26 08:30:05"} 
[2026-08-26 08:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 08:15:08","page":1} 
[2026-08-26 08:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 08:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 08:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 08:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 08:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 08:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 08:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 08:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 08:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 07:45:05","window_to":"2026-08-26 08:45:05"} 
[2026-08-26 08:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 08:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 08:30:09","page":1} 
[2026-08-26 08:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 08:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 08:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 08:45:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 08:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 08:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 08:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 08:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 09:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 08:00:06","window_to":"2026-08-26 09:00:06"} 
[2026-08-26 09:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 08:00:06","window_to":"2026-08-26 09:00:07"} 
[2026-08-26 09:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-26 09:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-26 09:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 08:45:08","page":1} 
[2026-08-26 09:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 09:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 09:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 09:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-26 08:00:12","window_to":"2026-08-26 09:00:12"} 
[2026-08-26 09:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-26 09:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 09:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 09:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 09:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 09:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 09:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 09:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 08:15:06","window_to":"2026-08-26 09:15:06"} 
[2026-08-26 09:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 09:00:11","page":1} 
[2026-08-26 09:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 09:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 09:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 09:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 09:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 09:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 09:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 09:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 09:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 09:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 08:30:06","window_to":"2026-08-26 09:30:06"} 
[2026-08-26 09:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 09:15:09","page":1} 
[2026-08-26 09:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 09:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 09:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 09:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 09:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 09:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 09:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 09:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 09:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 08:45:06","window_to":"2026-08-26 09:45:06"} 
[2026-08-26 09:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 09:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 09:30:09","page":1} 
[2026-08-26 09:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 09:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 09:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 09:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 09:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 09:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 09:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 09:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 10:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 09:00:06","window_to":"2026-08-26 10:00:06"} 
[2026-08-26 10:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 09:00:06","window_to":"2026-08-26 10:00:06"} 
[2026-08-26 10:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-26 10:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-26 10:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 09:45:08","page":1} 
[2026-08-26 10:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 10:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 10:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 10:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-26 09:00:11","window_to":"2026-08-26 10:00:11"} 
[2026-08-26 10:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-26 10:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 10:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 10:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 10:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 10:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 10:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 09:15:06","window_to":"2026-08-26 10:15:06"} 
[2026-08-26 10:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 10:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 10:00:11","page":1} 
[2026-08-26 10:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 10:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 10:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 10:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 10:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 10:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 10:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 10:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 10:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 09:30:06","window_to":"2026-08-26 10:30:06"} 
[2026-08-26 10:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 10:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 10:15:09","page":1} 
[2026-08-26 10:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 10:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 10:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 10:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 10:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 10:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 10:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 10:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 10:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 10:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 09:45:06","window_to":"2026-08-26 10:45:06"} 
[2026-08-26 10:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 10:30:09","page":1} 
[2026-08-26 10:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 10:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 10:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 10:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 10:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 10:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 10:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 10:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 11:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 10:00:05","window_to":"2026-08-26 11:00:05"} 
[2026-08-26 11:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-26 11:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 10:00:06","window_to":"2026-08-26 11:00:06"} 
[2026-08-26 11:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-26 11:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 10:45:08","page":1} 
[2026-08-26 11:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 11:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 11:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 11:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-26 10:00:12","window_to":"2026-08-26 11:00:12"} 
[2026-08-26 11:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-26 11:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 11:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 11:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 11:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 11:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 11:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 10:15:06","window_to":"2026-08-26 11:15:06"} 
[2026-08-26 11:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 11:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 11:00:10","page":1} 
[2026-08-26 11:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 11:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 11:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 11:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 11:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 11:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 11:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 11:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 11:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 10:30:06","window_to":"2026-08-26 11:30:06"} 
[2026-08-26 11:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 11:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 11:15:08","page":1} 
[2026-08-26 11:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 11:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 11:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 11:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 11:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 11:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 11:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 11:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 11:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 11:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 10:45:06","window_to":"2026-08-26 11:45:06"} 
[2026-08-26 11:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 11:30:10","page":1} 
[2026-08-26 11:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 11:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 11:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 11:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 11:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 11:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 11:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 11:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 12:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 11:00:06","window_to":"2026-08-26 12:00:06"} 
[2026-08-26 12:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-26 12:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 11:00:07","window_to":"2026-08-26 12:00:07"} 
[2026-08-26 12:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-26 12:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 11:45:09","page":1} 
[2026-08-26 12:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 12:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 12:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 12:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-26 11:00:12","window_to":"2026-08-26 12:00:12"} 
[2026-08-26 12:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-26 12:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 12:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 12:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 12:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 12:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 12:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 12:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 11:15:06","window_to":"2026-08-26 12:15:06"} 
[2026-08-26 12:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 12:00:11","page":1} 
[2026-08-26 12:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 12:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 12:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 12:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 12:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 12:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 12:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 12:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 12:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 11:30:06","window_to":"2026-08-26 12:30:06"} 
[2026-08-26 12:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 12:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 12:15:08","page":1} 
[2026-08-26 12:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 12:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 12:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 12:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 12:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 12:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 12:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 12:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 12:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 11:45:06","window_to":"2026-08-26 12:45:06"} 
[2026-08-26 12:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 12:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 12:30:10","page":1} 
[2026-08-26 12:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 12:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 12:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 12:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 12:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 12:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 12:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 12:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 13:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 12:00:07","window_to":"2026-08-26 13:00:07"} 
[2026-08-26 13:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 12:00:07","window_to":"2026-08-26 13:00:07"} 
[2026-08-26 13:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-26 13:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-26 13:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 12:45:09","page":1} 
[2026-08-26 13:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 13:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 13:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 13:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-26 12:00:13","window_to":"2026-08-26 13:00:13"} 
[2026-08-26 13:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-26 13:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 13:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 13:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 13:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 13:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 13:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 12:15:06","window_to":"2026-08-26 13:15:06"} 
[2026-08-26 13:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 13:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 13:00:12","page":1} 
[2026-08-26 13:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 13:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 13:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 13:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 13:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 13:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 13:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 13:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 13:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 13:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 12:30:07","window_to":"2026-08-26 13:30:07"} 
[2026-08-26 13:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 13:15:09","page":1} 
[2026-08-26 13:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 13:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 13:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 13:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 13:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 13:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 13:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 13:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 13:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 12:45:06","window_to":"2026-08-26 13:45:06"} 
[2026-08-26 13:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 13:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 13:30:10","page":1} 
[2026-08-26 13:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 13:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 13:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 13:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 13:50:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 13:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 13:55:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 13:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 14:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 13:00:07","window_to":"2026-08-26 14:00:07"} 
[2026-08-26 14:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 13:00:07","window_to":"2026-08-26 14:00:07"} 
[2026-08-26 14:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-26 14:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-26 14:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 13:45:09","page":1} 
[2026-08-26 14:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 14:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 14:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 14:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-26 13:00:12","window_to":"2026-08-26 14:00:12"} 
[2026-08-26 14:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-26 14:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 14:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 14:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 14:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 14:10:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 14:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 13:15:06","window_to":"2026-08-26 14:15:06"} 
[2026-08-26 14:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 14:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 14:00:11","page":1} 
[2026-08-26 14:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 14:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 14:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 14:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 14:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 14:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 14:25:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 14:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 14:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 14:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 13:30:06","window_to":"2026-08-26 14:30:06"} 
[2026-08-26 14:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 14:15:09","page":1} 
[2026-08-26 14:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 14:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 14:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 14:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 14:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 14:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 14:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 14:40:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 14:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 13:45:06","window_to":"2026-08-26 14:45:06"} 
[2026-08-26 14:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 14:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 14:30:10","page":1} 
[2026-08-26 14:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 14:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 14:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 14:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 14:50:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 14:50:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 14:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 14:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 15:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 14:00:07","window_to":"2026-08-26 15:00:07"} 
[2026-08-26 15:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-26 15:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 14:00:07","window_to":"2026-08-26 15:00:07"} 
[2026-08-26 15:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-26 15:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 14:45:09","page":1} 
[2026-08-26 15:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 15:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 15:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 15:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-26 14:00:12","window_to":"2026-08-26 15:00:12"} 
[2026-08-26 15:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-26 15:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 15:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 15:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 15:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 15:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 15:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 14:15:06","window_to":"2026-08-26 15:15:06"} 
[2026-08-26 15:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 15:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 15:00:12","page":1} 
[2026-08-26 15:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 15:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 15:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 15:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 15:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 15:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 15:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 15:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 15:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 15:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 14:30:05","window_to":"2026-08-26 15:30:05"} 
[2026-08-26 15:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 15:15:09","page":1} 
[2026-08-26 15:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 15:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 15:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 15:30:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 15:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 15:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 15:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 15:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 15:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 15:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 14:45:05","window_to":"2026-08-26 15:45:05"} 
[2026-08-26 15:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 15:30:08","page":1} 
[2026-08-26 15:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 15:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 15:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 15:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 15:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 15:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 15:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 15:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 16:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 15:00:06","window_to":"2026-08-26 16:00:06"} 
[2026-08-26 16:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 15:00:06","window_to":"2026-08-26 16:00:06"} 
[2026-08-26 16:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-26 16:00:09] local.INFO: Webhook retries processed successfully  
[2026-08-26 16:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 15:45:08","page":1} 
[2026-08-26 16:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 16:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 16:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 16:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-26 15:00:11","window_to":"2026-08-26 16:00:11"} 
[2026-08-26 16:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-26 16:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 16:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 16:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 16:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 16:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 16:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 15:15:05","window_to":"2026-08-26 16:15:05"} 
[2026-08-26 16:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 16:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 16:00:10","page":1} 
[2026-08-26 16:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 16:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 16:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 16:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 16:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 16:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 16:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 16:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 16:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 15:30:06","window_to":"2026-08-26 16:30:06"} 
[2026-08-26 16:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 16:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 16:15:08","page":1} 
[2026-08-26 16:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 16:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 16:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 16:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 16:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 16:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 16:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 16:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 16:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 15:45:05","window_to":"2026-08-26 16:45:05"} 
[2026-08-26 16:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 16:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 16:30:09","page":1} 
[2026-08-26 16:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 16:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 16:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 16:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 16:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 16:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 16:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 16:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 17:00:07] local.INFO: Staff auto-checkout completed successfully  
[2026-08-26 17:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 16:00:07","window_to":"2026-08-26 17:00:07"} 
[2026-08-26 17:00:10] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 16:00:10","window_to":"2026-08-26 17:00:10"} 
[2026-08-26 17:00:10] local.INFO: Webhook health check completed successfully  
[2026-08-26 17:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-26 17:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 16:45:08","page":1} 
[2026-08-26 17:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 17:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 17:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 17:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-26 16:00:12","window_to":"2026-08-26 17:00:12"} 
[2026-08-26 17:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-26 17:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 17:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 17:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 17:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 17:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 17:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 16:15:06","window_to":"2026-08-26 17:15:06"} 
[2026-08-26 17:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 17:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 17:00:11","page":1} 
[2026-08-26 17:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 17:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 17:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 17:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 17:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 17:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 17:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 17:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 17:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-26 17:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 16:30:06","window_to":"2026-08-26 17:30:07"} 
[2026-08-26 17:30:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 17:15:09","page":1} 
[2026-08-26 17:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 17:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 17:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 17:30:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 17:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 17:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 17:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 17:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 17:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 17:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 16:45:06","window_to":"2026-08-26 17:45:06"} 
[2026-08-26 17:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 17:30:11","page":1} 
[2026-08-26 17:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 17:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 17:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 17:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 17:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 17:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 17:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 17:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 18:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 17:00:06","window_to":"2026-08-26 18:00:06"} 
[2026-08-26 18:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 17:00:06","window_to":"2026-08-26 18:00:06"} 
[2026-08-26 18:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-26 18:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-26 18:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 17:45:09","page":1} 
[2026-08-26 18:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 18:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 18:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 18:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-26 17:00:11","window_to":"2026-08-26 18:00:11"} 
[2026-08-26 18:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-26 18:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 18:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 18:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 18:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 18:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 18:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 17:15:05","window_to":"2026-08-26 18:15:05"} 
[2026-08-26 18:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 18:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 18:00:11","page":1} 
[2026-08-26 18:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 18:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 18:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 18:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 18:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 18:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 18:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 18:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 18:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 17:30:05","window_to":"2026-08-26 18:30:06"} 
[2026-08-26 18:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 18:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 18:15:08","page":1} 
[2026-08-26 18:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 18:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 18:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 18:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 18:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 18:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 18:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 18:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 18:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 17:45:05","window_to":"2026-08-26 18:45:05"} 
[2026-08-26 18:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 18:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 18:30:09","page":1} 
[2026-08-26 18:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 18:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 18:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 18:45:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 18:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 18:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 18:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 18:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 19:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 18:00:06","window_to":"2026-08-26 19:00:06"} 
[2026-08-26 19:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 18:00:06","window_to":"2026-08-26 19:00:06"} 
[2026-08-26 19:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-26 19:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-26 19:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 18:45:08","page":1} 
[2026-08-26 19:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 19:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 19:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 19:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-26 18:00:11","window_to":"2026-08-26 19:00:11"} 
[2026-08-26 19:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-26 19:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 19:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 19:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 19:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 19:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 19:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 18:15:06","window_to":"2026-08-26 19:15:06"} 
[2026-08-26 19:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 19:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 19:00:11","page":1} 
[2026-08-26 19:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 19:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 19:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 19:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 19:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 19:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 19:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 19:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 19:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 18:30:06","window_to":"2026-08-26 19:30:06"} 
[2026-08-26 19:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 19:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 19:15:09","page":1} 
[2026-08-26 19:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 19:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 19:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 19:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 19:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 19:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 19:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 19:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 19:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 19:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 18:45:06","window_to":"2026-08-26 19:45:06"} 
[2026-08-26 19:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 19:30:09","page":1} 
[2026-08-26 19:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 19:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 19:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 19:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 19:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 19:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 19:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 19:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 20:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 19:00:07","window_to":"2026-08-26 20:00:07"} 
[2026-08-26 20:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 19:00:07","window_to":"2026-08-26 20:00:07"} 
[2026-08-26 20:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-26 20:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-26 20:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 19:45:09","page":1} 
[2026-08-26 20:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 20:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 20:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 20:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-26 19:00:12","window_to":"2026-08-26 20:00:12"} 
[2026-08-26 20:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-26 20:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 20:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 20:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 20:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 20:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 20:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 20:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 19:15:06","window_to":"2026-08-26 20:15:06"} 
[2026-08-26 20:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 20:00:11","page":1} 
[2026-08-26 20:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 20:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 20:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 20:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 20:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 20:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 20:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 20:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 20:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 19:30:05","window_to":"2026-08-26 20:30:06"} 
[2026-08-26 20:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 20:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 20:15:09","page":1} 
[2026-08-26 20:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 20:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 20:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 20:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 20:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 20:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 20:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 20:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 20:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 20:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 19:45:06","window_to":"2026-08-26 20:45:06"} 
[2026-08-26 20:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 20:30:10","page":1} 
[2026-08-26 20:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 20:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 20:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 20:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 20:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 20:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 20:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 20:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 21:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 20:00:06","window_to":"2026-08-26 21:00:06"} 
[2026-08-26 21:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 20:00:06","window_to":"2026-08-26 21:00:06"} 
[2026-08-26 21:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-26 21:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-26 21:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 20:45:09","page":1} 
[2026-08-26 21:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 21:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 21:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 21:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-26 20:00:12","window_to":"2026-08-26 21:00:12"} 
[2026-08-26 21:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-26 21:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 21:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 21:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 21:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 21:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 21:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 20:15:05","window_to":"2026-08-26 21:15:05"} 
[2026-08-26 21:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 21:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 21:00:11","page":1} 
[2026-08-26 21:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 21:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 21:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 21:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 21:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 21:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 21:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 21:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 21:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 20:30:06","window_to":"2026-08-26 21:30:06"} 
[2026-08-26 21:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 21:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 21:15:08","page":1} 
[2026-08-26 21:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 21:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 21:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 21:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 21:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 21:35:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 21:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 21:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 21:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 20:45:05","window_to":"2026-08-26 21:45:05"} 
[2026-08-26 21:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 21:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 21:30:09","page":1} 
[2026-08-26 21:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 21:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 21:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 21:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 21:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 21:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 21:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 21:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 22:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 21:00:06","window_to":"2026-08-26 22:00:06"} 
[2026-08-26 22:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 21:00:06","window_to":"2026-08-26 22:00:06"} 
[2026-08-26 22:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-26 22:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-26 22:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 21:45:08","page":1} 
[2026-08-26 22:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 22:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 22:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 22:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-26 21:00:12","window_to":"2026-08-26 22:00:12"} 
[2026-08-26 22:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-26 22:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 22:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 22:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 22:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 22:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 22:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 22:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 21:15:05","window_to":"2026-08-26 22:15:05"} 
[2026-08-26 22:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 22:00:11","page":1} 
[2026-08-26 22:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 22:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 22:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 22:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 22:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 22:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 22:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 22:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 22:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 21:30:06","window_to":"2026-08-26 22:30:06"} 
[2026-08-26 22:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-26 22:30:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 22:15:08","page":1} 
[2026-08-26 22:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 22:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 22:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 22:30:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 22:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 22:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 22:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 22:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 22:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 21:45:05","window_to":"2026-08-26 22:45:05"} 
[2026-08-26 22:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 22:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 22:30:11","page":1} 
[2026-08-26 22:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 22:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 22:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 22:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 22:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 22:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 22:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 22:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 23:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 22:00:06","window_to":"2026-08-26 23:00:06"} 
[2026-08-26 23:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 22:00:07","window_to":"2026-08-26 23:00:07"} 
[2026-08-26 23:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-26 23:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-26 23:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 22:45:08","page":1} 
[2026-08-26 23:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 23:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 23:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 23:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-26 22:00:12","window_to":"2026-08-26 23:00:12"} 
[2026-08-26 23:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-26 23:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 23:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 23:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 23:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 23:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 23:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 23:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 22:15:06","window_to":"2026-08-26 23:15:06"} 
[2026-08-26 23:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 23:00:11","page":1} 
[2026-08-26 23:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 23:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 23:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 23:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 23:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 23:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 23:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 23:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 23:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 22:30:06","window_to":"2026-08-26 23:30:06"} 
[2026-08-26 23:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 23:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 23:15:08","page":1} 
[2026-08-26 23:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 23:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 23:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 23:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 23:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 23:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 23:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 23:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 23:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 22:45:05","window_to":"2026-08-26 23:45:05"} 
[2026-08-26 23:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-26 23:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 23:30:09","page":1} 
[2026-08-26 23:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-26 23:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-26 23:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-26 23:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 23:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-26 23:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-26 23:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-26 23:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 00:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 23:00:07","window_to":"2026-08-27 00:00:07"} 
[2026-08-27 00:00:07] local.INFO: Commission cleanup completed successfully  
[2026-08-27 00:00:11] local.INFO: Student payment status check completed successfully  
[2026-08-27 00:00:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 23:00:11","window_to":"2026-08-27 00:00:11"} 
[2026-08-27 00:00:11] local.INFO: Webhook health check completed successfully  
[2026-08-27 00:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-27 00:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-26 23:45:08","page":1} 
[2026-08-27 00:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 00:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 00:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 00:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-26 23:00:13","window_to":"2026-08-27 00:00:13"} 
[2026-08-27 00:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-27 00:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 00:00:15] local.INFO: Student payment status check completed successfully  
[2026-08-27 00:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 00:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 00:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 00:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 00:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 00:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 23:15:05","window_to":"2026-08-27 00:15:05"} 
[2026-08-27 00:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 00:00:13","page":1} 
[2026-08-27 00:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 00:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 00:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 00:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 00:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 00:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 00:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 00:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 00:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 00:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 23:30:05","window_to":"2026-08-27 00:30:06"} 
[2026-08-27 00:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 00:15:08","page":1} 
[2026-08-27 00:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 00:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 00:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 00:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 00:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 00:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 00:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 00:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 00:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-26 23:45:05","window_to":"2026-08-27 00:45:05"} 
[2026-08-27 00:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 00:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 00:30:09","page":1} 
[2026-08-27 00:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 00:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 00:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 00:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 00:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 00:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 00:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 00:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 01:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 00:00:06","window_to":"2026-08-27 01:00:06"} 
[2026-08-27 01:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 00:00:06","window_to":"2026-08-27 01:00:06"} 
[2026-08-27 01:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-27 01:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-27 01:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 00:45:08","page":1} 
[2026-08-27 01:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 01:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 01:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 01:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-27 00:00:12","window_to":"2026-08-27 01:00:12"} 
[2026-08-27 01:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-27 01:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 01:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 01:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 01:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 01:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 01:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 00:15:06","window_to":"2026-08-27 01:15:06"} 
[2026-08-27 01:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 01:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 01:00:11","page":1} 
[2026-08-27 01:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 01:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 01:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 01:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 01:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 01:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 01:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 01:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 01:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 00:30:05","window_to":"2026-08-27 01:30:05"} 
[2026-08-27 01:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 01:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 01:15:09","page":1} 
[2026-08-27 01:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 01:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 01:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 01:30:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 01:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 01:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 01:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 01:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 01:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 01:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 00:45:05","window_to":"2026-08-27 01:45:05"} 
[2026-08-27 01:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 01:30:09","page":1} 
[2026-08-27 01:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 01:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 01:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 01:45:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 01:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 01:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 01:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 01:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 02:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 01:00:06","window_to":"2026-08-27 02:00:06"} 
[2026-08-27 02:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 01:00:06","window_to":"2026-08-27 02:00:06"} 
[2026-08-27 02:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-27 02:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-27 02:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 01:45:08","page":1} 
[2026-08-27 02:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 02:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 02:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 02:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-27 01:00:11","window_to":"2026-08-27 02:00:11"} 
[2026-08-27 02:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-27 02:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 02:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 02:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 02:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 02:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 02:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 02:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 01:15:06","window_to":"2026-08-27 02:15:06"} 
[2026-08-27 02:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 02:00:10","page":1} 
[2026-08-27 02:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 02:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 02:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 02:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 02:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 02:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 02:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 02:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 02:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 01:30:05","window_to":"2026-08-27 02:30:05"} 
[2026-08-27 02:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 02:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 02:15:08","page":1} 
[2026-08-27 02:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 02:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 02:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 02:30:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 02:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 02:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 02:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 02:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 02:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 01:45:04","window_to":"2026-08-27 02:45:05"} 
[2026-08-27 02:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 02:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 02:30:08","page":1} 
[2026-08-27 02:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 02:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 02:45:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 02:45:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 02:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 02:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 02:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 02:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 03:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 02:00:06","window_to":"2026-08-27 03:00:06"} 
[2026-08-27 03:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 02:00:06","window_to":"2026-08-27 03:00:06"} 
[2026-08-27 03:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-27 03:00:09] local.INFO: Webhook retries processed successfully  
[2026-08-27 03:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 02:45:07","page":1} 
[2026-08-27 03:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 03:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 03:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 03:00:10] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-27 02:00:10","window_to":"2026-08-27 03:00:10"} 
[2026-08-27 03:00:10] local.INFO: TikTok webhook health check completed successfully  
[2026-08-27 03:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 03:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 03:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 03:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 03:10:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 03:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 02:15:06","window_to":"2026-08-27 03:15:06"} 
[2026-08-27 03:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 03:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 03:00:10","page":1} 
[2026-08-27 03:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 03:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 03:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 03:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 03:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 03:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 03:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 03:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 03:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 02:30:05","window_to":"2026-08-27 03:30:05"} 
[2026-08-27 03:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 03:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 03:15:08","page":1} 
[2026-08-27 03:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 03:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 03:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 03:30:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 03:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 03:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 03:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 03:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 03:45:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 02:45:04","window_to":"2026-08-27 03:45:04"} 
[2026-08-27 03:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 03:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 03:30:08","page":1} 
[2026-08-27 03:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 03:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 03:45:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 03:45:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 03:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 03:50:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 03:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 03:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 04:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 03:00:05","window_to":"2026-08-27 04:00:05"} 
[2026-08-27 04:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 03:00:05","window_to":"2026-08-27 04:00:05"} 
[2026-08-27 04:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-27 04:00:08] local.INFO: Webhook retries processed successfully  
[2026-08-27 04:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 03:45:07","page":1} 
[2026-08-27 04:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 04:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 04:00:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 04:00:09] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-27 03:00:09","window_to":"2026-08-27 04:00:09"} 
[2026-08-27 04:00:09] local.INFO: TikTok webhook health check completed successfully  
[2026-08-27 04:00:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 04:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 04:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 04:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 04:10:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 04:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 04:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 03:15:05","window_to":"2026-08-27 04:15:05"} 
[2026-08-27 04:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 04:00:09","page":1} 
[2026-08-27 04:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 04:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 04:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 04:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 04:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 04:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 04:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 04:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 04:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 04:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 03:30:05","window_to":"2026-08-27 04:30:06"} 
[2026-08-27 04:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 04:15:08","page":1} 
[2026-08-27 04:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 04:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 04:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 04:30:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 04:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 04:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 04:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 04:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 04:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 03:45:06","window_to":"2026-08-27 04:45:06"} 
[2026-08-27 04:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 04:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 04:30:09","page":1} 
[2026-08-27 04:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 04:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 04:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 04:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 04:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 04:50:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 04:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 04:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 05:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 04:00:05","window_to":"2026-08-27 05:00:05"} 
[2026-08-27 05:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 04:00:05","window_to":"2026-08-27 05:00:05"} 
[2026-08-27 05:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-27 05:00:09] local.INFO: Webhook retries processed successfully  
[2026-08-27 05:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 04:45:08","page":1} 
[2026-08-27 05:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 05:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 05:00:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 05:00:10] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-27 04:00:10","window_to":"2026-08-27 05:00:10"} 
[2026-08-27 05:00:10] local.INFO: TikTok webhook health check completed successfully  
[2026-08-27 05:00:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 05:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 05:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 05:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 05:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 05:15:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 05:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 04:15:05","window_to":"2026-08-27 05:15:05"} 
[2026-08-27 05:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 05:00:09","page":1} 
[2026-08-27 05:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 05:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 05:15:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 05:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 05:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 05:20:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 05:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 05:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 05:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 04:30:05","window_to":"2026-08-27 05:30:05"} 
[2026-08-27 05:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 05:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 05:15:07","page":1} 
[2026-08-27 05:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 05:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 05:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 05:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 05:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 05:35:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 05:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 05:40:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 05:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 04:45:05","window_to":"2026-08-27 05:45:05"} 
[2026-08-27 05:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 05:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 05:30:09","page":1} 
[2026-08-27 05:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 05:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 05:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 05:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 05:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 05:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 05:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 05:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 06:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 05:00:05","window_to":"2026-08-27 06:00:05"} 
[2026-08-27 06:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 05:00:05","window_to":"2026-08-27 06:00:05"} 
[2026-08-27 06:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-27 06:00:09] local.INFO: Webhook retries processed successfully  
[2026-08-27 06:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 05:45:08","page":1} 
[2026-08-27 06:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 06:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 06:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 06:00:10] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-27 05:00:10","window_to":"2026-08-27 06:00:10"} 
[2026-08-27 06:00:10] local.INFO: TikTok webhook health check completed successfully  
[2026-08-27 06:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 06:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 06:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 06:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 06:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 06:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 05:15:05","window_to":"2026-08-27 06:15:05"} 
[2026-08-27 06:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 06:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 06:00:09","page":1} 
[2026-08-27 06:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 06:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 06:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 06:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 06:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 06:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 06:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 06:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 06:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 05:30:06","window_to":"2026-08-27 06:30:06"} 
[2026-08-27 06:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 06:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 06:15:07","page":1} 
[2026-08-27 06:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 06:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 06:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 06:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 06:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 06:35:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 06:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 06:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 06:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 05:45:05","window_to":"2026-08-27 06:45:05"} 
[2026-08-27 06:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 06:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 06:30:09","page":1} 
[2026-08-27 06:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 06:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 06:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 06:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 06:50:07] local.INFO: Webhook retries processed successfully  
[2026-08-27 06:50:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 06:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 06:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 07:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 06:00:05","window_to":"2026-08-27 07:00:05"} 
[2026-08-27 07:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 06:00:05","window_to":"2026-08-27 07:00:05"} 
[2026-08-27 07:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-27 07:00:09] local.INFO: Webhook retries processed successfully  
[2026-08-27 07:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 06:45:08","page":1} 
[2026-08-27 07:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 07:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 07:00:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 07:00:10] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-27 06:00:10","window_to":"2026-08-27 07:00:10"} 
[2026-08-27 07:00:10] local.INFO: TikTok webhook health check completed successfully  
[2026-08-27 07:00:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 07:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 07:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 07:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 07:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 07:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 06:15:06","window_to":"2026-08-27 07:15:06"} 
[2026-08-27 07:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 07:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 07:00:09","page":1} 
[2026-08-27 07:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 07:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 07:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 07:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 07:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 07:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 07:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 07:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 07:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 06:30:05","window_to":"2026-08-27 07:30:05"} 
[2026-08-27 07:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 07:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 07:15:09","page":1} 
[2026-08-27 07:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 07:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 07:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 07:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 07:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 07:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 07:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 07:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 07:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 06:45:05","window_to":"2026-08-27 07:45:05"} 
[2026-08-27 07:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 07:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 07:30:09","page":1} 
[2026-08-27 07:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 07:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 07:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 07:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 07:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 07:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 07:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 07:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 08:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 07:00:06","window_to":"2026-08-27 08:00:06"} 
[2026-08-27 08:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 07:00:06","window_to":"2026-08-27 08:00:06"} 
[2026-08-27 08:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-27 08:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-27 08:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 07:45:08","page":1} 
[2026-08-27 08:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 08:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 08:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 08:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-27 07:00:11","window_to":"2026-08-27 08:00:11"} 
[2026-08-27 08:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-27 08:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 08:00:13] local.INFO: Student payment reminder notifications sent successfully  
[2026-08-27 08:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 08:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 08:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 08:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 08:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 08:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 07:15:05","window_to":"2026-08-27 08:15:05"} 
[2026-08-27 08:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 08:00:11","page":1} 
[2026-08-27 08:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 08:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 08:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 08:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 08:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 08:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 08:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 08:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 08:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 07:30:05","window_to":"2026-08-27 08:30:05"} 
[2026-08-27 08:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 08:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 08:15:08","page":1} 
[2026-08-27 08:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 08:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 08:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 08:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 08:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 08:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 08:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 08:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 08:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 08:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 07:45:05","window_to":"2026-08-27 08:45:05"} 
[2026-08-27 08:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 08:30:09","page":1} 
[2026-08-27 08:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 08:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 08:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 08:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 08:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 08:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 08:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 08:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 09:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 08:00:06","window_to":"2026-08-27 09:00:06"} 
[2026-08-27 09:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-27 09:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 08:00:06","window_to":"2026-08-27 09:00:06"} 
[2026-08-27 09:00:09] local.INFO: Webhook retries processed successfully  
[2026-08-27 09:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 08:45:08","page":1} 
[2026-08-27 09:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 09:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 09:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 09:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-27 08:00:11","window_to":"2026-08-27 09:00:11"} 
[2026-08-27 09:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-27 09:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 09:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 09:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 09:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 09:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 09:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 09:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 08:15:05","window_to":"2026-08-27 09:15:05"} 
[2026-08-27 09:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 09:00:10","page":1} 
[2026-08-27 09:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 09:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 09:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 09:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 09:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 09:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 09:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 09:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 09:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 08:30:05","window_to":"2026-08-27 09:30:05"} 
[2026-08-27 09:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 09:30:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 09:15:08","page":1} 
[2026-08-27 09:30:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 09:30:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 09:30:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 09:30:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 09:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 09:35:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 09:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 09:40:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 09:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 08:45:06","window_to":"2026-08-27 09:45:06"} 
[2026-08-27 09:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 09:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 09:30:12","page":1} 
[2026-08-27 09:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 09:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 09:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 09:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 09:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 09:50:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 09:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 09:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 10:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 09:00:05","window_to":"2026-08-27 10:00:05"} 
[2026-08-27 10:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 09:00:06","window_to":"2026-08-27 10:00:06"} 
[2026-08-27 10:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-27 10:00:09] local.INFO: Webhook retries processed successfully  
[2026-08-27 10:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 09:45:09","page":1} 
[2026-08-27 10:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 10:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 10:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 10:00:10] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-27 09:00:10","window_to":"2026-08-27 10:00:10"} 
[2026-08-27 10:00:10] local.INFO: TikTok webhook health check completed successfully  
[2026-08-27 10:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 10:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 10:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 10:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 10:10:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 10:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 10:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 09:15:05","window_to":"2026-08-27 10:15:05"} 
[2026-08-27 10:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 10:00:10","page":1} 
[2026-08-27 10:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 10:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 10:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 10:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 10:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 10:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 10:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 10:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 10:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 09:30:05","window_to":"2026-08-27 10:30:06"} 
[2026-08-27 10:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 10:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 10:15:09","page":1} 
[2026-08-27 10:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 10:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 10:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 10:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 10:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 10:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 10:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 10:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 10:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 10:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 09:45:06","window_to":"2026-08-27 10:45:06"} 
[2026-08-27 10:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 10:30:09","page":1} 
[2026-08-27 10:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 10:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 10:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 10:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 10:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 10:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 10:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 10:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 11:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 10:00:06","window_to":"2026-08-27 11:00:06"} 
[2026-08-27 11:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 10:00:06","window_to":"2026-08-27 11:00:06"} 
[2026-08-27 11:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-27 11:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-27 11:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 10:45:09","page":1} 
[2026-08-27 11:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 11:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 11:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 11:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-27 10:00:11","window_to":"2026-08-27 11:00:11"} 
[2026-08-27 11:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-27 11:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 11:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 11:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 11:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 11:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 11:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 10:15:05","window_to":"2026-08-27 11:15:05"} 
[2026-08-27 11:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 11:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 11:00:11","page":1} 
[2026-08-27 11:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 11:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 11:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 11:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 11:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 11:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 11:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 11:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 11:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 10:30:06","window_to":"2026-08-27 11:30:06"} 
[2026-08-27 11:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 11:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 11:15:08","page":1} 
[2026-08-27 11:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 11:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 11:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 11:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 11:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 11:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 11:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 11:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 11:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 10:45:05","window_to":"2026-08-27 11:45:05"} 
[2026-08-27 11:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 11:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 11:30:09","page":1} 
[2026-08-27 11:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 11:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 11:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 11:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 11:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 11:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 11:55:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 11:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 12:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 11:00:06","window_to":"2026-08-27 12:00:06"} 
[2026-08-27 12:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 11:00:06","window_to":"2026-08-27 12:00:06"} 
[2026-08-27 12:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-27 12:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-27 12:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 11:45:08","page":1} 
[2026-08-27 12:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 12:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 12:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 12:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-27 11:00:11","window_to":"2026-08-27 12:00:11"} 
[2026-08-27 12:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-27 12:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 12:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 12:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 12:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 12:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 12:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 11:15:05","window_to":"2026-08-27 12:15:05"} 
[2026-08-27 12:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 12:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 12:00:10","page":1} 
[2026-08-27 12:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 12:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 12:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 12:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 12:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 12:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 12:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 12:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 12:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 11:30:06","window_to":"2026-08-27 12:30:06"} 
[2026-08-27 12:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-27 12:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 12:15:09","page":1} 
[2026-08-27 12:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 12:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 12:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 12:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 12:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 12:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 12:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 12:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 12:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 11:45:05","window_to":"2026-08-27 12:45:06"} 
[2026-08-27 12:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 12:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 12:30:10","page":1} 
[2026-08-27 12:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 12:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 12:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 12:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 12:50:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 12:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 12:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 12:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 13:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 12:00:07","window_to":"2026-08-27 13:00:07"} 
[2026-08-27 13:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 12:00:07","window_to":"2026-08-27 13:00:07"} 
[2026-08-27 13:00:08] local.INFO: Webhook health check completed successfully  
[2026-08-27 13:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-27 13:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 12:45:09","page":1} 
[2026-08-27 13:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 13:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 13:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 13:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-27 12:00:13","window_to":"2026-08-27 13:00:13"} 
[2026-08-27 13:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-27 13:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 13:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 13:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 13:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 13:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 13:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 12:15:04","window_to":"2026-08-27 13:15:04"} 
[2026-08-27 13:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 13:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 13:00:12","page":1} 
[2026-08-27 13:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 13:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 13:15:16] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 13:15:16] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 13:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 13:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 13:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 13:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 13:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 13:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 12:30:05","window_to":"2026-08-27 13:30:05"} 
[2026-08-27 13:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 13:15:07","page":1} 
[2026-08-27 13:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 13:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 13:30:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 13:30:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 13:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 13:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 13:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 13:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 13:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 12:45:04","window_to":"2026-08-27 13:45:05"} 
[2026-08-27 13:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 13:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 13:30:08","page":1} 
[2026-08-27 13:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 13:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 13:45:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 13:45:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 13:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 13:50:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 13:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 13:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 14:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 13:00:06","window_to":"2026-08-27 14:00:06"} 
[2026-08-27 14:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 13:00:06","window_to":"2026-08-27 14:00:06"} 
[2026-08-27 14:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-27 14:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-27 14:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 13:45:07","page":1} 
[2026-08-27 14:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 14:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 14:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 14:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-27 13:00:11","window_to":"2026-08-27 14:00:11"} 
[2026-08-27 14:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-27 14:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 14:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 14:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 14:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 14:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 14:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 13:15:05","window_to":"2026-08-27 14:15:05"} 
[2026-08-27 14:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 14:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 14:00:11","page":1} 
[2026-08-27 14:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 14:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 14:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 14:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 14:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 14:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 14:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 14:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 14:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 13:30:06","window_to":"2026-08-27 14:30:06"} 
[2026-08-27 14:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 14:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 14:15:08","page":1} 
[2026-08-27 14:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 14:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 14:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 14:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 14:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 14:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 14:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 14:40:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 14:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 13:45:05","window_to":"2026-08-27 14:45:05"} 
[2026-08-27 14:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 14:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 14:30:09","page":1} 
[2026-08-27 14:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 14:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 14:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 14:45:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 14:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 14:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 14:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 14:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 15:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 14:00:05","window_to":"2026-08-27 15:00:05"} 
[2026-08-27 15:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 14:00:05","window_to":"2026-08-27 15:00:05"} 
[2026-08-27 15:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-27 15:00:09] local.INFO: Webhook retries processed successfully  
[2026-08-27 15:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 14:45:07","page":1} 
[2026-08-27 15:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 15:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 15:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 15:00:10] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-27 14:00:10","window_to":"2026-08-27 15:00:10"} 
[2026-08-27 15:00:10] local.INFO: TikTok webhook health check completed successfully  
[2026-08-27 15:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 15:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 15:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 15:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 15:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 15:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 14:15:06","window_to":"2026-08-27 15:15:06"} 
[2026-08-27 15:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 15:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 15:00:10","page":1} 
[2026-08-27 15:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 15:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 15:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 15:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 15:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 15:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 15:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 15:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 15:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 14:30:05","window_to":"2026-08-27 15:30:05"} 
[2026-08-27 15:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 15:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 15:15:09","page":1} 
[2026-08-27 15:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 15:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 15:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 15:30:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 15:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 15:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 15:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 15:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 15:45:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 15:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 14:45:05","window_to":"2026-08-27 15:45:05"} 
[2026-08-27 15:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 15:30:09","page":1} 
[2026-08-27 15:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 15:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 15:45:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 15:45:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 15:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 15:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 15:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 15:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 16:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 15:00:06","window_to":"2026-08-27 16:00:06"} 
[2026-08-27 16:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-27 16:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 15:00:06","window_to":"2026-08-27 16:00:06"} 
[2026-08-27 16:00:09] local.INFO: Webhook retries processed successfully  
[2026-08-27 16:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 15:45:07","page":1} 
[2026-08-27 16:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 16:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 16:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 16:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-27 15:00:11","window_to":"2026-08-27 16:00:11"} 
[2026-08-27 16:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-27 16:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 16:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 16:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 16:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 16:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 16:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 15:15:05","window_to":"2026-08-27 16:15:05"} 
[2026-08-27 16:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 16:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 16:00:10","page":1} 
[2026-08-27 16:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 16:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 16:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 16:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 16:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 16:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 16:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 16:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 16:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 15:30:05","window_to":"2026-08-27 16:30:06"} 
[2026-08-27 16:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 16:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 16:15:07","page":1} 
[2026-08-27 16:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 16:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 16:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 16:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 16:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 16:35:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 16:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 16:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 16:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 15:45:05","window_to":"2026-08-27 16:45:05"} 
[2026-08-27 16:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 16:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 16:30:09","page":1} 
[2026-08-27 16:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 16:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 16:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 16:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 16:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 16:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 16:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 16:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 17:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 16:00:05","window_to":"2026-08-27 17:00:05"} 
[2026-08-27 17:00:06] local.INFO: Staff auto-checkout completed successfully  
[2026-08-27 17:00:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 16:00:09","window_to":"2026-08-27 17:00:09"} 
[2026-08-27 17:00:10] local.INFO: Webhook health check completed successfully  
[2026-08-27 17:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-27 17:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 16:45:08","page":1} 
[2026-08-27 17:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 17:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 17:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 17:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-27 16:00:11","window_to":"2026-08-27 17:00:11"} 
[2026-08-27 17:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-27 17:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 17:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 17:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 17:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 17:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 17:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 16:15:05","window_to":"2026-08-27 17:15:05"} 
[2026-08-27 17:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 17:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 17:00:11","page":1} 
[2026-08-27 17:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 17:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 17:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 17:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 17:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 17:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 17:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 17:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 17:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 16:30:05","window_to":"2026-08-27 17:30:06"} 
[2026-08-27 17:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 17:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 17:15:08","page":1} 
[2026-08-27 17:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 17:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 17:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 17:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 17:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 17:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 17:40:03] local.INFO: Webhook retries processed successfully  
[2026-08-27 17:40:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 17:45:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 16:45:04","window_to":"2026-08-27 17:45:04"} 
[2026-08-27 17:45:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 17:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 17:30:09","page":1} 
[2026-08-27 17:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 17:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 17:45:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 17:45:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 17:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 17:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 17:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 17:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 18:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 17:00:06","window_to":"2026-08-27 18:00:06"} 
[2026-08-27 18:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-27 18:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 17:00:07","window_to":"2026-08-27 18:00:07"} 
[2026-08-27 18:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-27 18:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 17:45:07","page":1} 
[2026-08-27 18:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 18:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 18:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 18:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-27 17:00:13","window_to":"2026-08-27 18:00:13"} 
[2026-08-27 18:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-27 18:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 18:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 18:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 18:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 18:10:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 18:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 17:15:05","window_to":"2026-08-27 18:15:05"} 
[2026-08-27 18:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 18:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 18:00:12","page":1} 
[2026-08-27 18:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 18:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 18:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 18:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 18:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 18:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 18:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 18:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 18:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 17:30:06","window_to":"2026-08-27 18:30:06"} 
[2026-08-27 18:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 18:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 18:15:09","page":1} 
[2026-08-27 18:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 18:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 18:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 18:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 18:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 18:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 18:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 18:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 18:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 18:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 17:45:05","window_to":"2026-08-27 18:45:05"} 
[2026-08-27 18:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 18:30:09","page":1} 
[2026-08-27 18:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 18:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 18:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 18:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 18:50:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 18:50:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 18:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 18:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 19:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 18:00:07","window_to":"2026-08-27 19:00:07"} 
[2026-08-27 19:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 18:00:07","window_to":"2026-08-27 19:00:08"} 
[2026-08-27 19:00:08] local.INFO: Webhook health check completed successfully  
[2026-08-27 19:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-27 19:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 18:45:08","page":1} 
[2026-08-27 19:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 19:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 19:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 19:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-27 18:00:13","window_to":"2026-08-27 19:00:13"} 
[2026-08-27 19:00:14] local.INFO: TikTok webhook health check completed successfully  
[2026-08-27 19:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 19:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 19:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 19:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 19:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 19:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 19:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 18:15:05","window_to":"2026-08-27 19:15:05"} 
[2026-08-27 19:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 19:00:13","page":1} 
[2026-08-27 19:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 19:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 19:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 19:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 19:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 19:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 19:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 19:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 19:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 19:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 18:30:06","window_to":"2026-08-27 19:30:06"} 
[2026-08-27 19:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 19:15:08","page":1} 
[2026-08-27 19:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 19:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 19:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 19:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 19:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 19:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 19:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 19:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 19:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 18:45:06","window_to":"2026-08-27 19:45:06"} 
[2026-08-27 19:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 19:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 19:30:10","page":1} 
[2026-08-27 19:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 19:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 19:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 19:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 19:50:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 19:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 19:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 19:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 20:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 19:00:06","window_to":"2026-08-27 20:00:07"} 
[2026-08-27 20:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-27 20:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 19:00:07","window_to":"2026-08-27 20:00:07"} 
[2026-08-27 20:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-27 20:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 19:45:09","page":1} 
[2026-08-27 20:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 20:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 20:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 20:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-27 19:00:12","window_to":"2026-08-27 20:00:12"} 
[2026-08-27 20:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-27 20:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 20:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 20:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 20:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 20:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 20:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 20:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 19:15:06","window_to":"2026-08-27 20:15:06"} 
[2026-08-27 20:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 20:00:12","page":1} 
[2026-08-27 20:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 20:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 20:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 20:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 20:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 20:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 20:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 20:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 20:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 19:30:07","window_to":"2026-08-27 20:30:07"} 
[2026-08-27 20:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-27 20:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 20:15:09","page":1} 
[2026-08-27 20:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 20:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 20:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 20:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 20:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 20:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 20:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 20:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 20:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 19:45:05","window_to":"2026-08-27 20:45:05"} 
[2026-08-27 20:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 20:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 20:30:10","page":1} 
[2026-08-27 20:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 20:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 20:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 20:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 20:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 20:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 20:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 20:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 21:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 20:00:06","window_to":"2026-08-27 21:00:06"} 
[2026-08-27 21:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 20:00:07","window_to":"2026-08-27 21:00:07"} 
[2026-08-27 21:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-27 21:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-27 21:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 20:45:08","page":1} 
[2026-08-27 21:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 21:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 21:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 21:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-27 20:00:12","window_to":"2026-08-27 21:00:12"} 
[2026-08-27 21:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-27 21:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 21:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 21:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 21:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 21:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 21:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 20:15:06","window_to":"2026-08-27 21:15:06"} 
[2026-08-27 21:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 21:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 21:00:11","page":1} 
[2026-08-27 21:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 21:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 21:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 21:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 21:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 21:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 21:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 21:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 21:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 20:30:06","window_to":"2026-08-27 21:30:06"} 
[2026-08-27 21:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-27 21:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 21:15:09","page":1} 
[2026-08-27 21:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 21:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 21:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 21:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 21:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 21:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 21:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 21:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 21:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 21:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 20:45:06","window_to":"2026-08-27 21:45:06"} 
[2026-08-27 21:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 21:30:10","page":1} 
[2026-08-27 21:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 21:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 21:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 21:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 21:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 21:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 21:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 21:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 22:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 21:00:06","window_to":"2026-08-27 22:00:06"} 
[2026-08-27 22:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 21:00:06","window_to":"2026-08-27 22:00:06"} 
[2026-08-27 22:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-27 22:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-27 22:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 21:45:09","page":1} 
[2026-08-27 22:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 22:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 22:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 22:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-27 21:00:12","window_to":"2026-08-27 22:00:12"} 
[2026-08-27 22:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-27 22:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 22:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 22:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 22:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 22:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 22:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 21:15:05","window_to":"2026-08-27 22:15:05"} 
[2026-08-27 22:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 22:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 22:00:11","page":1} 
[2026-08-27 22:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 22:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 22:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 22:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 22:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 22:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 22:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 22:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 22:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 21:30:06","window_to":"2026-08-27 22:30:06"} 
[2026-08-27 22:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 22:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 22:15:09","page":1} 
[2026-08-27 22:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 22:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 22:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 22:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 22:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 22:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 22:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 22:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 22:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 21:45:05","window_to":"2026-08-27 22:45:05"} 
[2026-08-27 22:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 22:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 22:30:10","page":1} 
[2026-08-27 22:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 22:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 22:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 22:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 22:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 22:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 22:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 22:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 23:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 22:00:07","window_to":"2026-08-27 23:00:07"} 
[2026-08-27 23:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 22:00:07","window_to":"2026-08-27 23:00:07"} 
[2026-08-27 23:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-27 23:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-27 23:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 22:45:09","page":1} 
[2026-08-27 23:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 23:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 23:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 23:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-27 22:00:13","window_to":"2026-08-27 23:00:13"} 
[2026-08-27 23:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-27 23:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 23:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-27 23:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 23:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 23:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 23:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 22:15:06","window_to":"2026-08-27 23:15:06"} 
[2026-08-27 23:15:07] local.INFO: Webhook retries processed successfully  
[2026-08-27 23:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 23:00:12","page":1} 
[2026-08-27 23:15:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 23:15:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 23:15:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 23:15:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 23:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 23:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 23:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 23:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 23:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 22:30:06","window_to":"2026-08-27 23:30:06"} 
[2026-08-27 23:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 23:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 23:15:10","page":1} 
[2026-08-27 23:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 23:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 23:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 23:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 23:35:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 23:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 23:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-27 23:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 23:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 22:45:05","window_to":"2026-08-27 23:45:06"} 
[2026-08-27 23:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 23:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 23:30:10","page":1} 
[2026-08-27 23:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-27 23:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-27 23:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-27 23:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 23:50:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 23:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-27 23:55:06] local.INFO: Webhook retries processed successfully  
[2026-08-27 23:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 00:00:09] local.INFO: Commission cleanup completed successfully  
[2026-08-28 00:00:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 23:00:09","window_to":"2026-08-28 00:00:09"} 
[2026-08-28 00:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 23:00:13","window_to":"2026-08-28 00:00:13"} 
[2026-08-28 00:00:13] local.INFO: Student payment status check completed successfully  
[2026-08-28 00:00:13] local.INFO: Webhook health check completed successfully  
[2026-08-28 00:00:14] local.INFO: Webhook retries processed successfully  
[2026-08-28 00:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-27 23:45:09","page":1} 
[2026-08-28 00:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 00:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 00:00:15] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 00:00:16] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-27 23:00:16","window_to":"2026-08-28 00:00:16"} 
[2026-08-28 00:00:16] local.INFO: TikTok webhook health check completed successfully  
[2026-08-28 00:00:16] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 00:00:17] local.INFO: Student payment status check completed successfully  
[2026-08-28 00:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 00:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 00:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 00:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 00:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 23:15:06","window_to":"2026-08-28 00:15:06"} 
[2026-08-28 00:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 00:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 00:00:15","page":1} 
[2026-08-28 00:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 00:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 00:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 00:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 00:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 00:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 00:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 00:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 00:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 23:30:06","window_to":"2026-08-28 00:30:06"} 
[2026-08-28 00:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 00:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 00:15:09","page":1} 
[2026-08-28 00:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 00:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 00:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 00:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 00:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 00:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 00:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 00:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 00:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-27 23:45:06","window_to":"2026-08-28 00:45:06"} 
[2026-08-28 00:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 00:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 00:30:10","page":1} 
[2026-08-28 00:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 00:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 00:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 00:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 00:50:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 00:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 00:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 00:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 01:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 00:00:07","window_to":"2026-08-28 01:00:07"} 
[2026-08-28 01:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 00:00:07","window_to":"2026-08-28 01:00:07"} 
[2026-08-28 01:00:08] local.INFO: Webhook health check completed successfully  
[2026-08-28 01:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-28 01:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 00:45:09","page":1} 
[2026-08-28 01:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 01:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 01:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 01:00:14] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-28 00:00:14","window_to":"2026-08-28 01:00:14"} 
[2026-08-28 01:00:14] local.INFO: TikTok webhook health check completed successfully  
[2026-08-28 01:00:15] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 01:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 01:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 01:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 01:10:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 01:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 00:15:06","window_to":"2026-08-28 01:15:06"} 
[2026-08-28 01:15:07] local.INFO: Webhook retries processed successfully  
[2026-08-28 01:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 01:00:13","page":1} 
[2026-08-28 01:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 01:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 01:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 01:15:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 01:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 01:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 01:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 01:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 01:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 00:30:06","window_to":"2026-08-28 01:30:06"} 
[2026-08-28 01:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 01:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 01:15:10","page":1} 
[2026-08-28 01:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 01:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 01:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 01:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 01:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 01:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 01:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 01:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 01:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 00:45:06","window_to":"2026-08-28 01:45:06"} 
[2026-08-28 01:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 01:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 01:30:10","page":1} 
[2026-08-28 01:45:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 01:45:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 01:45:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 01:45:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 01:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 01:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 01:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 01:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 02:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 01:00:06","window_to":"2026-08-28 02:00:06"} 
[2026-08-28 02:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 01:00:07","window_to":"2026-08-28 02:00:07"} 
[2026-08-28 02:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-28 02:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-28 02:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 01:45:09","page":1} 
[2026-08-28 02:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 02:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 02:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 02:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-28 01:00:13","window_to":"2026-08-28 02:00:13"} 
[2026-08-28 02:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-28 02:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 02:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 02:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 02:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 02:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 02:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 01:15:06","window_to":"2026-08-28 02:15:06"} 
[2026-08-28 02:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 02:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 02:00:12","page":1} 
[2026-08-28 02:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 02:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 02:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 02:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 02:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 02:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 02:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 02:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 02:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 02:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 01:30:06","window_to":"2026-08-28 02:30:06"} 
[2026-08-28 02:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 02:15:09","page":1} 
[2026-08-28 02:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 02:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 02:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 02:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 02:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 02:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 02:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 02:40:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 02:45:04] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 01:45:04","window_to":"2026-08-28 02:45:04"} 
[2026-08-28 02:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 02:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 02:30:10","page":1} 
[2026-08-28 02:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 02:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 02:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 02:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 02:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 02:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 02:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 02:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 03:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 02:00:07","window_to":"2026-08-28 03:00:07"} 
[2026-08-28 03:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 02:00:07","window_to":"2026-08-28 03:00:07"} 
[2026-08-28 03:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-28 03:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-28 03:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 02:45:08","page":1} 
[2026-08-28 03:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 03:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 03:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 03:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-28 02:00:13","window_to":"2026-08-28 03:00:13"} 
[2026-08-28 03:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-28 03:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 03:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 03:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 03:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 03:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 03:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 02:15:06","window_to":"2026-08-28 03:15:06"} 
[2026-08-28 03:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 03:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 03:00:12","page":1} 
[2026-08-28 03:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 03:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 03:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 03:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 03:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 03:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 03:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 03:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 03:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 02:30:06","window_to":"2026-08-28 03:30:06"} 
[2026-08-28 03:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 03:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 03:15:09","page":1} 
[2026-08-28 03:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 03:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 03:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 03:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 03:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 03:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 03:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 03:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 03:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 02:45:06","window_to":"2026-08-28 03:45:06"} 
[2026-08-28 03:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 03:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 03:30:09","page":1} 
[2026-08-28 03:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 03:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 03:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 03:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 03:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 03:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 03:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 03:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 04:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 03:00:06","window_to":"2026-08-28 04:00:06"} 
[2026-08-28 04:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-28 04:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 03:00:06","window_to":"2026-08-28 04:00:06"} 
[2026-08-28 04:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-28 04:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 03:45:09","page":1} 
[2026-08-28 04:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 04:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 04:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 04:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-28 03:00:11","window_to":"2026-08-28 04:00:11"} 
[2026-08-28 04:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-28 04:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 04:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 04:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 04:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 04:10:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 04:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 03:15:05","window_to":"2026-08-28 04:15:05"} 
[2026-08-28 04:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 04:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 04:00:11","page":1} 
[2026-08-28 04:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 04:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 04:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 04:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 04:20:03] local.INFO: Webhook retries processed successfully  
[2026-08-28 04:20:05] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 04:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 04:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 04:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 03:30:06","window_to":"2026-08-28 04:30:06"} 
[2026-08-28 04:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 04:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 04:15:07","page":1} 
[2026-08-28 04:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 04:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 04:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 04:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 04:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 04:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 04:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 04:40:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 04:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 03:45:05","window_to":"2026-08-28 04:45:05"} 
[2026-08-28 04:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 04:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 04:30:09","page":1} 
[2026-08-28 04:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 04:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 04:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 04:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 04:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 04:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 04:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 04:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 05:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 04:00:06","window_to":"2026-08-28 05:00:06"} 
[2026-08-28 05:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 04:00:06","window_to":"2026-08-28 05:00:06"} 
[2026-08-28 05:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-28 05:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-28 05:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 04:45:08","page":1} 
[2026-08-28 05:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 05:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 05:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 05:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-28 04:00:11","window_to":"2026-08-28 05:00:11"} 
[2026-08-28 05:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-28 05:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 05:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 05:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 05:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 05:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 05:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 05:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 04:15:05","window_to":"2026-08-28 05:15:05"} 
[2026-08-28 05:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 05:00:10","page":1} 
[2026-08-28 05:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 05:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 05:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 05:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 05:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 05:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 05:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 05:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 05:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 05:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 04:30:06","window_to":"2026-08-28 05:30:06"} 
[2026-08-28 05:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 05:15:07","page":1} 
[2026-08-28 05:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 05:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 05:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 05:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 05:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 05:35:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 05:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 05:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 05:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 04:45:05","window_to":"2026-08-28 05:45:05"} 
[2026-08-28 05:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 05:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 05:30:09","page":1} 
[2026-08-28 05:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 05:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 05:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 05:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 05:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 05:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 05:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 05:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 06:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 05:00:06","window_to":"2026-08-28 06:00:06"} 
[2026-08-28 06:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 05:00:06","window_to":"2026-08-28 06:00:07"} 
[2026-08-28 06:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-28 06:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-28 06:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 05:45:08","page":1} 
[2026-08-28 06:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 06:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 06:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 06:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-28 05:00:12","window_to":"2026-08-28 06:00:12"} 
[2026-08-28 06:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-28 06:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 06:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 06:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 06:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 06:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 06:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 05:15:06","window_to":"2026-08-28 06:15:06"} 
[2026-08-28 06:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 06:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 06:00:11","page":1} 
[2026-08-28 06:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 06:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 06:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 06:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 06:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 06:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 06:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 06:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 06:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 05:30:06","window_to":"2026-08-28 06:30:06"} 
[2026-08-28 06:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 06:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 06:15:09","page":1} 
[2026-08-28 06:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 06:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 06:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 06:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 06:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 06:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 06:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 06:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 06:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 06:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 05:45:06","window_to":"2026-08-28 06:45:06"} 
[2026-08-28 06:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 06:30:10","page":1} 
[2026-08-28 06:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 06:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 06:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 06:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 06:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 06:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 06:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 06:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 07:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 06:00:06","window_to":"2026-08-28 07:00:06"} 
[2026-08-28 07:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 06:00:07","window_to":"2026-08-28 07:00:07"} 
[2026-08-28 07:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-28 07:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-28 07:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 06:45:09","page":1} 
[2026-08-28 07:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 07:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 07:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 07:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-28 06:00:12","window_to":"2026-08-28 07:00:12"} 
[2026-08-28 07:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-28 07:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 07:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 07:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 07:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 07:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 07:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 06:15:06","window_to":"2026-08-28 07:15:06"} 
[2026-08-28 07:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 07:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 07:00:11","page":1} 
[2026-08-28 07:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 07:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 07:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 07:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 07:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 07:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 07:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 07:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 07:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 07:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 06:30:06","window_to":"2026-08-28 07:30:06"} 
[2026-08-28 07:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 07:15:09","page":1} 
[2026-08-28 07:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 07:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 07:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 07:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 07:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 07:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 07:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 07:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 07:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 06:45:05","window_to":"2026-08-28 07:45:06"} 
[2026-08-28 07:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 07:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 07:30:09","page":1} 
[2026-08-28 07:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 07:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 07:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 07:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 07:50:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 07:50:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 07:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 07:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 08:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 07:00:06","window_to":"2026-08-28 08:00:06"} 
[2026-08-28 08:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 07:00:06","window_to":"2026-08-28 08:00:06"} 
[2026-08-28 08:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-28 08:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-28 08:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 07:45:09","page":1} 
[2026-08-28 08:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 08:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 08:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 08:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-28 07:00:12","window_to":"2026-08-28 08:00:12"} 
[2026-08-28 08:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-28 08:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 08:00:14] local.INFO: Student payment reminder notifications sent successfully  
[2026-08-28 08:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 08:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 08:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 08:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 08:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 07:15:06","window_to":"2026-08-28 08:15:06"} 
[2026-08-28 08:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 08:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 08:00:11","page":1} 
[2026-08-28 08:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 08:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 08:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 08:15:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 08:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 08:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 08:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 08:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 08:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 07:30:07","window_to":"2026-08-28 08:30:07"} 
[2026-08-28 08:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-28 08:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 08:15:10","page":1} 
[2026-08-28 08:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 08:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 08:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 08:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 08:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 08:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 08:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 08:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 08:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 08:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 07:45:06","window_to":"2026-08-28 08:45:06"} 
[2026-08-28 08:45:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 08:30:10","page":1} 
[2026-08-28 08:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 08:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 08:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 08:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 08:50:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 08:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 08:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 08:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 09:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 08:00:07","window_to":"2026-08-28 09:00:07"} 
[2026-08-28 09:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 08:00:07","window_to":"2026-08-28 09:00:07"} 
[2026-08-28 09:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-28 09:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-28 09:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 08:45:10","page":1} 
[2026-08-28 09:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 09:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 09:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 09:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-28 08:00:12","window_to":"2026-08-28 09:00:12"} 
[2026-08-28 09:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-28 09:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 09:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 09:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 09:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 09:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 09:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 08:15:06","window_to":"2026-08-28 09:15:06"} 
[2026-08-28 09:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 09:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 09:00:11","page":1} 
[2026-08-28 09:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 09:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 09:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 09:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 09:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 09:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 09:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 09:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 09:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 08:30:06","window_to":"2026-08-28 09:30:06"} 
[2026-08-28 09:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-28 09:30:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 09:15:09","page":1} 
[2026-08-28 09:30:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 09:30:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 09:30:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 09:30:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 09:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 09:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 09:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 09:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 09:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 08:45:06","window_to":"2026-08-28 09:45:06"} 
[2026-08-28 09:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 09:45:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 09:30:11","page":1} 
[2026-08-28 09:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 09:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 09:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 09:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 09:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 09:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 09:55:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 09:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 10:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 09:00:07","window_to":"2026-08-28 10:00:07"} 
[2026-08-28 10:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 09:00:07","window_to":"2026-08-28 10:00:07"} 
[2026-08-28 10:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-28 10:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-28 10:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 09:45:10","page":1} 
[2026-08-28 10:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 10:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 10:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 10:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-28 09:00:12","window_to":"2026-08-28 10:00:12"} 
[2026-08-28 10:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-28 10:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 10:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 10:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 10:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 10:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 10:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 09:15:06","window_to":"2026-08-28 10:15:06"} 
[2026-08-28 10:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 10:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 10:00:11","page":1} 
[2026-08-28 10:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 10:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 10:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 10:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 10:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 10:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 10:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 10:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 10:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 09:30:06","window_to":"2026-08-28 10:30:06"} 
[2026-08-28 10:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 10:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 10:15:09","page":1} 
[2026-08-28 10:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 10:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 10:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 10:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 10:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 10:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 10:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 10:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 10:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 09:45:05","window_to":"2026-08-28 10:45:05"} 
[2026-08-28 10:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 10:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 10:30:10","page":1} 
[2026-08-28 10:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 10:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 10:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 10:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 10:50:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 10:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 10:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 10:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 11:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 10:00:06","window_to":"2026-08-28 11:00:06"} 
[2026-08-28 11:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 10:00:07","window_to":"2026-08-28 11:00:07"} 
[2026-08-28 11:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-28 11:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-28 11:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 10:45:09","page":1} 
[2026-08-28 11:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 11:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 11:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 11:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-28 10:00:12","window_to":"2026-08-28 11:00:12"} 
[2026-08-28 11:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-28 11:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 11:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 11:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 11:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 11:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 11:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 10:15:06","window_to":"2026-08-28 11:15:06"} 
[2026-08-28 11:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 11:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 11:00:11","page":1} 
[2026-08-28 11:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 11:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 11:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 11:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 11:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 11:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 11:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 11:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 11:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 10:30:05","window_to":"2026-08-28 11:30:06"} 
[2026-08-28 11:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 11:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 11:15:10","page":1} 
[2026-08-28 11:30:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 11:30:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 11:30:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 11:30:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 11:35:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 11:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 11:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 11:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 11:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 10:45:06","window_to":"2026-08-28 11:45:06"} 
[2026-08-28 11:45:07] local.INFO: Webhook retries processed successfully  
[2026-08-28 11:45:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 11:30:09","page":1} 
[2026-08-28 11:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 11:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 11:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 11:45:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 11:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 11:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 11:55:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 11:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 12:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 11:00:07","window_to":"2026-08-28 12:00:07"} 
[2026-08-28 12:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 11:00:07","window_to":"2026-08-28 12:00:07"} 
[2026-08-28 12:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-28 12:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-28 12:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 11:45:10","page":1} 
[2026-08-28 12:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 12:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 12:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 12:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-28 11:00:13","window_to":"2026-08-28 12:00:13"} 
[2026-08-28 12:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-28 12:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 12:05:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 12:05:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 12:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 12:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 12:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 12:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 11:15:06","window_to":"2026-08-28 12:15:06"} 
[2026-08-28 12:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 12:00:12","page":1} 
[2026-08-28 12:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 12:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 12:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 12:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 12:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 12:20:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 12:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 12:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 12:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 11:30:06","window_to":"2026-08-28 12:30:06"} 
[2026-08-28 12:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-28 12:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 12:15:09","page":1} 
[2026-08-28 12:30:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 12:30:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 12:30:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 12:30:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 12:35:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 12:35:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 12:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 12:40:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 12:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 12:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 11:45:06","window_to":"2026-08-28 12:45:06"} 
[2026-08-28 12:45:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 12:30:10","page":1} 
[2026-08-28 12:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 12:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 12:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 12:45:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 12:50:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 12:50:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 12:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 12:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 13:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 12:00:08","window_to":"2026-08-28 13:00:08"} 
[2026-08-28 13:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 12:00:08","window_to":"2026-08-28 13:00:08"} 
[2026-08-28 13:00:09] local.INFO: Webhook health check completed successfully  
[2026-08-28 13:00:13] local.INFO: Webhook retries processed successfully  
[2026-08-28 13:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 12:45:10","page":1} 
[2026-08-28 13:00:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 13:00:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 13:00:14] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 13:00:15] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-28 12:00:15","window_to":"2026-08-28 13:00:15"} 
[2026-08-28 13:00:15] local.INFO: TikTok webhook health check completed successfully  
[2026-08-28 13:00:16] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 13:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 13:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 13:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 13:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 13:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 12:15:06","window_to":"2026-08-28 13:15:06"} 
[2026-08-28 13:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 13:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 13:00:14","page":1} 
[2026-08-28 13:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 13:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 13:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 13:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 13:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 13:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 13:25:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 13:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 13:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 12:30:06","window_to":"2026-08-28 13:30:06"} 
[2026-08-28 13:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-28 13:30:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 13:15:09","page":1} 
[2026-08-28 13:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 13:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 13:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 13:30:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 13:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 13:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 13:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 13:40:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 13:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 12:45:06","window_to":"2026-08-28 13:45:06"} 
[2026-08-28 13:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 13:45:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 13:30:10","page":1} 
[2026-08-28 13:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 13:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 13:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 13:45:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 13:50:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 13:50:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 13:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 13:55:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 14:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 13:00:07","window_to":"2026-08-28 14:00:07"} 
[2026-08-28 14:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-28 14:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 13:00:07","window_to":"2026-08-28 14:00:07"} 
[2026-08-28 14:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-28 14:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 13:45:10","page":1} 
[2026-08-28 14:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 14:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 14:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 14:00:14] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-28 13:00:14","window_to":"2026-08-28 14:00:14"} 
[2026-08-28 14:00:14] local.INFO: TikTok webhook health check completed successfully  
[2026-08-28 14:00:15] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 14:05:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 14:05:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 14:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 14:10:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 14:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 13:15:05","window_to":"2026-08-28 14:15:06"} 
[2026-08-28 14:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 14:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 14:00:13","page":1} 
[2026-08-28 14:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 14:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 14:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 14:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 14:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 14:20:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 14:25:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 14:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 14:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 13:30:06","window_to":"2026-08-28 14:30:06"} 
[2026-08-28 14:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-28 14:30:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 14:15:09","page":1} 
[2026-08-28 14:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 14:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 14:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 14:30:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 14:35:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 14:35:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 14:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 14:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 14:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 13:45:06","window_to":"2026-08-28 14:45:06"} 
[2026-08-28 14:45:07] local.INFO: Webhook retries processed successfully  
[2026-08-28 14:45:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 14:30:11","page":1} 
[2026-08-28 14:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 14:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 14:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 14:45:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 14:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 14:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 14:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 14:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 15:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 14:00:06","window_to":"2026-08-28 15:00:06"} 
[2026-08-28 15:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 14:00:06","window_to":"2026-08-28 15:00:06"} 
[2026-08-28 15:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-28 15:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-28 15:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 14:45:10","page":1} 
[2026-08-28 15:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 15:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 15:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 15:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-28 14:00:11","window_to":"2026-08-28 15:00:11"} 
[2026-08-28 15:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-28 15:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 15:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 15:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 15:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 15:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 15:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 14:15:06","window_to":"2026-08-28 15:15:06"} 
[2026-08-28 15:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 15:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 15:00:10","page":1} 
[2026-08-28 15:15:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 15:15:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 15:15:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 15:15:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 15:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 15:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 15:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 15:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 15:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-28 15:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 14:30:07","window_to":"2026-08-28 15:30:07"} 
[2026-08-28 15:30:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 15:15:10","page":1} 
[2026-08-28 15:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 15:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 15:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 15:30:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 15:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 15:35:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 15:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 15:40:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 15:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 14:45:06","window_to":"2026-08-28 15:45:06"} 
[2026-08-28 15:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 15:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 15:30:11","page":1} 
[2026-08-28 15:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 15:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 15:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 15:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 15:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 15:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 15:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 15:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 16:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 15:00:06","window_to":"2026-08-28 16:00:06"} 
[2026-08-28 16:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 15:00:06","window_to":"2026-08-28 16:00:06"} 
[2026-08-28 16:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-28 16:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-28 16:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 15:45:09","page":1} 
[2026-08-28 16:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 16:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 16:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 16:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-28 15:00:12","window_to":"2026-08-28 16:00:12"} 
[2026-08-28 16:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-28 16:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 16:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 16:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 16:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 16:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 16:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 15:15:05","window_to":"2026-08-28 16:15:05"} 
[2026-08-28 16:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 16:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 16:00:11","page":1} 
[2026-08-28 16:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 16:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 16:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 16:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 16:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 16:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 16:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 16:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 16:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 16:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 15:30:06","window_to":"2026-08-28 16:30:06"} 
[2026-08-28 16:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 16:15:08","page":1} 
[2026-08-28 16:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 16:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 16:30:14] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 16:30:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 16:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 16:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 16:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 16:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 16:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 15:45:05","window_to":"2026-08-28 16:45:05"} 
[2026-08-28 16:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 16:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 16:30:09","page":1} 
[2026-08-28 16:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 16:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 16:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 16:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 16:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 16:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 16:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 16:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 17:00:06] local.INFO: Staff auto-checkout completed successfully  
[2026-08-28 17:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 16:00:06","window_to":"2026-08-28 17:00:06"} 
[2026-08-28 17:00:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 16:00:11","window_to":"2026-08-28 17:00:11"} 
[2026-08-28 17:00:11] local.INFO: Webhook health check completed successfully  
[2026-08-28 17:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-28 17:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 16:45:08","page":1} 
[2026-08-28 17:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 17:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 17:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 17:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-28 16:00:13","window_to":"2026-08-28 17:00:13"} 
[2026-08-28 17:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-28 17:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 17:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 17:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 17:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 17:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 17:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 16:15:05","window_to":"2026-08-28 17:15:05"} 
[2026-08-28 17:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 17:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 17:00:12","page":1} 
[2026-08-28 17:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 17:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 17:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 17:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 17:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 17:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 17:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 17:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 17:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 16:30:06","window_to":"2026-08-28 17:30:06"} 
[2026-08-28 17:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 17:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 17:15:08","page":1} 
[2026-08-28 17:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 17:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 17:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 17:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 17:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 17:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 17:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 17:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 17:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 17:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 16:45:06","window_to":"2026-08-28 17:45:06"} 
[2026-08-28 17:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 17:30:09","page":1} 
[2026-08-28 17:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 17:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 17:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 17:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 17:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 17:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 17:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 17:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 18:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 17:00:07","window_to":"2026-08-28 18:00:07"} 
[2026-08-28 18:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 17:00:08","window_to":"2026-08-28 18:00:08"} 
[2026-08-28 18:00:08] local.INFO: Webhook health check completed successfully  
[2026-08-28 18:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-28 18:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 17:45:09","page":1} 
[2026-08-28 18:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 18:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 18:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 18:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-28 17:00:13","window_to":"2026-08-28 18:00:13"} 
[2026-08-28 18:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-28 18:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 18:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 18:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 18:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 18:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 18:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 17:15:06","window_to":"2026-08-28 18:15:06"} 
[2026-08-28 18:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 18:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 18:00:12","page":1} 
[2026-08-28 18:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 18:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 18:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 18:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 18:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 18:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 18:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 18:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 18:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 17:30:05","window_to":"2026-08-28 18:30:05"} 
[2026-08-28 18:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 18:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 18:15:09","page":1} 
[2026-08-28 18:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 18:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 18:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 18:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 18:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 18:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 18:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 18:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 18:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 18:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 17:45:05","window_to":"2026-08-28 18:45:05"} 
[2026-08-28 18:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 18:30:09","page":1} 
[2026-08-28 18:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 18:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 18:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 18:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 18:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 18:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 18:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 18:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 19:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 18:00:06","window_to":"2026-08-28 19:00:06"} 
[2026-08-28 19:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 18:00:06","window_to":"2026-08-28 19:00:06"} 
[2026-08-28 19:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-28 19:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-28 19:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 18:45:08","page":1} 
[2026-08-28 19:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 19:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 19:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 19:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-28 18:00:12","window_to":"2026-08-28 19:00:12"} 
[2026-08-28 19:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-28 19:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 19:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 19:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 19:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 19:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 19:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 19:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 18:15:05","window_to":"2026-08-28 19:15:06"} 
[2026-08-28 19:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 19:00:11","page":1} 
[2026-08-28 19:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 19:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 19:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 19:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 19:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 19:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 19:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 19:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 19:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 19:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 18:30:06","window_to":"2026-08-28 19:30:06"} 
[2026-08-28 19:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 19:15:09","page":1} 
[2026-08-28 19:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 19:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 19:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 19:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 19:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 19:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 19:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 19:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 19:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 19:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 18:45:06","window_to":"2026-08-28 19:45:06"} 
[2026-08-28 19:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 19:30:09","page":1} 
[2026-08-28 19:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 19:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 19:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 19:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 19:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 19:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 19:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 19:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 20:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 19:00:06","window_to":"2026-08-28 20:00:06"} 
[2026-08-28 20:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 19:00:07","window_to":"2026-08-28 20:00:07"} 
[2026-08-28 20:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-28 20:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-28 20:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 19:45:09","page":1} 
[2026-08-28 20:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 20:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 20:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 20:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-28 19:00:12","window_to":"2026-08-28 20:00:12"} 
[2026-08-28 20:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-28 20:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 20:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 20:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 20:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 20:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 20:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 20:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 19:15:06","window_to":"2026-08-28 20:15:06"} 
[2026-08-28 20:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 20:00:11","page":1} 
[2026-08-28 20:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 20:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 20:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 20:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 20:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 20:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 20:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 20:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 20:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 20:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 19:30:06","window_to":"2026-08-28 20:30:06"} 
[2026-08-28 20:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 20:15:09","page":1} 
[2026-08-28 20:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 20:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 20:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 20:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 20:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 20:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 20:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 20:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 20:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 19:45:05","window_to":"2026-08-28 20:45:05"} 
[2026-08-28 20:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 20:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 20:30:09","page":1} 
[2026-08-28 20:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 20:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 20:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 20:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 20:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 20:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 20:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 20:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 21:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 20:00:06","window_to":"2026-08-28 21:00:06"} 
[2026-08-28 21:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 20:00:06","window_to":"2026-08-28 21:00:06"} 
[2026-08-28 21:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-28 21:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-28 21:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 20:45:09","page":1} 
[2026-08-28 21:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 21:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 21:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 21:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-28 20:00:11","window_to":"2026-08-28 21:00:11"} 
[2026-08-28 21:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-28 21:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 21:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 21:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 21:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 21:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 21:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 20:15:05","window_to":"2026-08-28 21:15:05"} 
[2026-08-28 21:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 21:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 21:00:11","page":1} 
[2026-08-28 21:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 21:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 21:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 21:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 21:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 21:20:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 21:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 21:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 21:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 20:30:05","window_to":"2026-08-28 21:30:05"} 
[2026-08-28 21:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 21:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 21:15:08","page":1} 
[2026-08-28 21:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 21:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 21:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 21:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 21:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 21:35:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 21:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 21:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 21:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 20:45:05","window_to":"2026-08-28 21:45:05"} 
[2026-08-28 21:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 21:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 21:30:09","page":1} 
[2026-08-28 21:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 21:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 21:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 21:45:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 21:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 21:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 21:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 21:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 22:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 21:00:06","window_to":"2026-08-28 22:00:06"} 
[2026-08-28 22:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 21:00:06","window_to":"2026-08-28 22:00:06"} 
[2026-08-28 22:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-28 22:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-28 22:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 21:45:08","page":1} 
[2026-08-28 22:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 22:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 22:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 22:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-28 21:00:11","window_to":"2026-08-28 22:00:11"} 
[2026-08-28 22:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-28 22:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 22:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 22:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 22:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 22:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 22:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 21:15:05","window_to":"2026-08-28 22:15:05"} 
[2026-08-28 22:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 22:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 22:00:11","page":1} 
[2026-08-28 22:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 22:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 22:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 22:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 22:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 22:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 22:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 22:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 22:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 21:30:05","window_to":"2026-08-28 22:30:05"} 
[2026-08-28 22:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 22:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 22:15:08","page":1} 
[2026-08-28 22:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 22:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 22:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 22:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 22:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 22:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 22:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 22:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 22:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 21:45:05","window_to":"2026-08-28 22:45:05"} 
[2026-08-28 22:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 22:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 22:30:09","page":1} 
[2026-08-28 22:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 22:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 22:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 22:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 22:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 22:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 22:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 22:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 23:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 22:00:06","window_to":"2026-08-28 23:00:06"} 
[2026-08-28 23:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 22:00:06","window_to":"2026-08-28 23:00:06"} 
[2026-08-28 23:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-28 23:00:09] local.INFO: Webhook retries processed successfully  
[2026-08-28 23:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 22:45:09","page":1} 
[2026-08-28 23:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 23:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 23:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 23:00:10] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-28 22:00:10","window_to":"2026-08-28 23:00:10"} 
[2026-08-28 23:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-28 23:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 23:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 23:05:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 23:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 23:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 23:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 22:15:04","window_to":"2026-08-28 23:15:04"} 
[2026-08-28 23:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 23:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 23:00:10","page":1} 
[2026-08-28 23:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 23:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 23:15:07] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 23:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 23:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 23:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 23:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 23:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 23:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 23:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 22:30:06","window_to":"2026-08-28 23:30:06"} 
[2026-08-28 23:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 23:15:07","page":1} 
[2026-08-28 23:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 23:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 23:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 23:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 23:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-28 23:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 23:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 23:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 23:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 22:45:06","window_to":"2026-08-28 23:45:06"} 
[2026-08-28 23:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-28 23:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 23:30:09","page":1} 
[2026-08-28 23:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-28 23:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-28 23:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-28 23:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 23:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 23:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-28 23:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-28 23:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 00:00:07] local.INFO: Commission cleanup completed successfully  
[2026-08-29 00:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 23:00:07","window_to":"2026-08-29 00:00:07"} 
[2026-08-29 00:00:11] local.INFO: Student payment status check completed successfully  
[2026-08-29 00:00:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 23:00:11","window_to":"2026-08-29 00:00:11"} 
[2026-08-29 00:00:11] local.INFO: Webhook health check completed successfully  
[2026-08-29 00:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-29 00:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-28 23:45:09","page":1} 
[2026-08-29 00:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 00:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 00:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 00:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-28 23:00:13","window_to":"2026-08-29 00:00:13"} 
[2026-08-29 00:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-29 00:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 00:00:15] local.INFO: Student payment status check completed successfully  
[2026-08-29 00:05:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 00:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 00:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-29 00:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 00:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 23:15:06","window_to":"2026-08-29 00:15:06"} 
[2026-08-29 00:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 00:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 00:00:12","page":1} 
[2026-08-29 00:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 00:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 00:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 00:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 00:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 00:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 00:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 00:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 00:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 23:30:06","window_to":"2026-08-29 00:30:06"} 
[2026-08-29 00:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 00:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 00:15:09","page":1} 
[2026-08-29 00:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 00:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 00:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 00:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 00:35:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 00:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 00:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 00:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 00:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 00:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-28 23:45:06","window_to":"2026-08-29 00:45:06"} 
[2026-08-29 00:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 00:30:09","page":1} 
[2026-08-29 00:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 00:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 00:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 00:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 00:50:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 00:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 00:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 00:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 01:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 00:00:08","window_to":"2026-08-29 01:00:08"} 
[2026-08-29 01:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 00:00:08","window_to":"2026-08-29 01:00:08"} 
[2026-08-29 01:00:08] local.INFO: Webhook health check completed successfully  
[2026-08-29 01:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-29 01:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 00:45:09","page":1} 
[2026-08-29 01:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 01:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 01:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 01:00:14] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-29 00:00:14","window_to":"2026-08-29 01:00:14"} 
[2026-08-29 01:00:14] local.INFO: TikTok webhook health check completed successfully  
[2026-08-29 01:00:15] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 01:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 01:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 01:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 01:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 01:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 00:15:05","window_to":"2026-08-29 01:15:06"} 
[2026-08-29 01:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 01:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 01:00:13","page":1} 
[2026-08-29 01:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 01:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 01:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 01:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 01:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 01:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 01:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 01:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 01:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 00:30:06","window_to":"2026-08-29 01:30:06"} 
[2026-08-29 01:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 01:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 01:15:09","page":1} 
[2026-08-29 01:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 01:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 01:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 01:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 01:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-29 01:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 01:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 01:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 01:45:07] local.INFO: Webhook retries processed successfully  
[2026-08-29 01:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 00:45:07","window_to":"2026-08-29 01:45:07"} 
[2026-08-29 01:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 01:30:10","page":1} 
[2026-08-29 01:45:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 01:45:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 01:45:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 01:45:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 01:50:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 01:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 01:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 01:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 02:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 01:00:07","window_to":"2026-08-29 02:00:07"} 
[2026-08-29 02:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 01:00:07","window_to":"2026-08-29 02:00:07"} 
[2026-08-29 02:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-29 02:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-29 02:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 01:45:11","page":1} 
[2026-08-29 02:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 02:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 02:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 02:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-29 01:00:13","window_to":"2026-08-29 02:00:13"} 
[2026-08-29 02:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-29 02:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 02:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 02:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 02:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 02:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 02:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 01:15:06","window_to":"2026-08-29 02:15:06"} 
[2026-08-29 02:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 02:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 02:00:12","page":1} 
[2026-08-29 02:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 02:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 02:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 02:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 02:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 02:20:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 02:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 02:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 02:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 01:30:05","window_to":"2026-08-29 02:30:05"} 
[2026-08-29 02:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 02:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 02:15:09","page":1} 
[2026-08-29 02:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 02:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 02:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 02:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 02:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 02:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 02:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 02:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 02:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 01:45:05","window_to":"2026-08-29 02:45:05"} 
[2026-08-29 02:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 02:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 02:30:08","page":1} 
[2026-08-29 02:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 02:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 02:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 02:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 02:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 02:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 02:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 02:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 03:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 02:00:05","window_to":"2026-08-29 03:00:05"} 
[2026-08-29 03:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 02:00:06","window_to":"2026-08-29 03:00:06"} 
[2026-08-29 03:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-29 03:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-29 03:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 02:45:08","page":1} 
[2026-08-29 03:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 03:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 03:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 03:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-29 02:00:11","window_to":"2026-08-29 03:00:11"} 
[2026-08-29 03:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-29 03:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 03:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 03:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 03:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 03:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 03:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 02:15:05","window_to":"2026-08-29 03:15:05"} 
[2026-08-29 03:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 03:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 03:00:10","page":1} 
[2026-08-29 03:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 03:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 03:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 03:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 03:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 03:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 03:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 03:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 03:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 02:30:06","window_to":"2026-08-29 03:30:06"} 
[2026-08-29 03:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-29 03:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 03:15:08","page":1} 
[2026-08-29 03:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 03:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 03:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 03:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 03:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 03:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 03:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-29 03:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 03:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 02:45:06","window_to":"2026-08-29 03:45:06"} 
[2026-08-29 03:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 03:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 03:30:10","page":1} 
[2026-08-29 03:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 03:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 03:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 03:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 03:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 03:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 03:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 03:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 04:00:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 03:00:05","window_to":"2026-08-29 04:00:05"} 
[2026-08-29 04:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 03:00:06","window_to":"2026-08-29 04:00:06"} 
[2026-08-29 04:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-29 04:00:09] local.INFO: Webhook retries processed successfully  
[2026-08-29 04:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 03:45:09","page":1} 
[2026-08-29 04:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 04:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 04:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 04:00:10] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-29 03:00:10","window_to":"2026-08-29 04:00:10"} 
[2026-08-29 04:00:10] local.INFO: TikTok webhook health check completed successfully  
[2026-08-29 04:00:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 04:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 04:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 04:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-29 04:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 04:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 03:15:05","window_to":"2026-08-29 04:15:06"} 
[2026-08-29 04:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 04:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 04:00:10","page":1} 
[2026-08-29 04:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 04:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 04:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 04:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 04:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 04:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 04:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-29 04:25:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 04:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 03:30:06","window_to":"2026-08-29 04:30:06"} 
[2026-08-29 04:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 04:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 04:15:09","page":1} 
[2026-08-29 04:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 04:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 04:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 04:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 04:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-29 04:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 04:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 04:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 04:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 03:45:05","window_to":"2026-08-29 04:45:05"} 
[2026-08-29 04:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 04:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 04:30:10","page":1} 
[2026-08-29 04:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 04:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 04:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 04:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 04:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 04:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 04:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-29 04:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 05:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 04:00:06","window_to":"2026-08-29 05:00:06"} 
[2026-08-29 05:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 04:00:06","window_to":"2026-08-29 05:00:06"} 
[2026-08-29 05:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-29 05:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-29 05:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 04:45:08","page":1} 
[2026-08-29 05:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 05:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 05:00:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 05:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-29 04:00:11","window_to":"2026-08-29 05:00:11"} 
[2026-08-29 05:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-29 05:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 05:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 05:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 05:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 05:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 05:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 04:15:05","window_to":"2026-08-29 05:15:05"} 
[2026-08-29 05:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 05:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 05:00:10","page":1} 
[2026-08-29 05:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 05:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 05:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 05:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 05:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-29 05:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 05:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-29 05:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 05:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-29 05:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 04:30:07","window_to":"2026-08-29 05:30:07"} 
[2026-08-29 05:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 05:15:09","page":1} 
[2026-08-29 05:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 05:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 05:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 05:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 05:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-29 05:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 05:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 05:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 05:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 04:45:06","window_to":"2026-08-29 05:45:06"} 
[2026-08-29 05:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 05:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 05:30:10","page":1} 
[2026-08-29 05:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 05:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 05:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 05:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 05:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 05:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 05:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 05:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 06:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 05:00:06","window_to":"2026-08-29 06:00:06"} 
[2026-08-29 06:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 05:00:06","window_to":"2026-08-29 06:00:06"} 
[2026-08-29 06:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-29 06:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-29 06:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 05:45:09","page":1} 
[2026-08-29 06:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 06:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 06:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 06:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-29 05:00:12","window_to":"2026-08-29 06:00:12"} 
[2026-08-29 06:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-29 06:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 06:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-29 06:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 06:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 06:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 06:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 06:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 05:15:05","window_to":"2026-08-29 06:15:05"} 
[2026-08-29 06:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 06:00:12","page":1} 
[2026-08-29 06:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 06:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 06:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 06:15:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 06:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 06:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 06:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 06:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 06:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 06:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 05:30:06","window_to":"2026-08-29 06:30:06"} 
[2026-08-29 06:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 06:15:07","page":1} 
[2026-08-29 06:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 06:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 06:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 06:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 06:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 06:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 06:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 06:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 06:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 06:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 05:45:05","window_to":"2026-08-29 06:45:06"} 
[2026-08-29 06:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 06:30:09","page":1} 
[2026-08-29 06:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 06:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 06:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 06:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 06:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 06:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 06:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 06:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 07:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 06:00:06","window_to":"2026-08-29 07:00:06"} 
[2026-08-29 07:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 06:00:06","window_to":"2026-08-29 07:00:06"} 
[2026-08-29 07:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-29 07:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-29 07:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 06:45:09","page":1} 
[2026-08-29 07:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 07:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 07:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 07:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-29 06:00:12","window_to":"2026-08-29 07:00:12"} 
[2026-08-29 07:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-29 07:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 07:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 07:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 07:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 07:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 07:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 06:15:05","window_to":"2026-08-29 07:15:05"} 
[2026-08-29 07:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 07:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 07:00:11","page":1} 
[2026-08-29 07:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 07:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 07:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 07:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 07:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 07:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 07:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-29 07:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 07:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-29 07:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 06:30:06","window_to":"2026-08-29 07:30:06"} 
[2026-08-29 07:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 07:15:09","page":1} 
[2026-08-29 07:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 07:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 07:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 07:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 07:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 07:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 07:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 07:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 07:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 07:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 06:45:06","window_to":"2026-08-29 07:45:06"} 
[2026-08-29 07:45:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 07:30:10","page":1} 
[2026-08-29 07:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 07:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 07:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 07:45:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 07:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-29 07:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 07:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 07:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 08:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 07:00:06","window_to":"2026-08-29 08:00:07"} 
[2026-08-29 08:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 07:00:07","window_to":"2026-08-29 08:00:07"} 
[2026-08-29 08:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-29 08:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-29 08:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 07:45:10","page":1} 
[2026-08-29 08:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 08:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 08:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 08:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-29 07:00:12","window_to":"2026-08-29 08:00:12"} 
[2026-08-29 08:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-29 08:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 08:00:14] local.INFO: Student payment reminder notifications sent successfully  
[2026-08-29 08:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 08:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 08:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-29 08:10:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 08:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 07:15:05","window_to":"2026-08-29 08:15:05"} 
[2026-08-29 08:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 08:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 08:00:11","page":1} 
[2026-08-29 08:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 08:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 08:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 08:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 08:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 08:20:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 08:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 08:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 08:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 07:30:06","window_to":"2026-08-29 08:30:06"} 
[2026-08-29 08:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 08:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 08:15:09","page":1} 
[2026-08-29 08:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 08:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 08:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 08:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 08:35:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 08:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 08:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 08:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 08:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 07:45:05","window_to":"2026-08-29 08:45:05"} 
[2026-08-29 08:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 08:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 08:30:10","page":1} 
[2026-08-29 08:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 08:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 08:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 08:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 08:50:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 08:50:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 08:55:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 08:55:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 09:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 08:00:07","window_to":"2026-08-29 09:00:08"} 
[2026-08-29 09:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 08:00:08","window_to":"2026-08-29 09:00:08"} 
[2026-08-29 09:00:08] local.INFO: Webhook health check completed successfully  
[2026-08-29 09:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-29 09:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 08:45:09","page":1} 
[2026-08-29 09:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 09:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 09:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 09:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-29 08:00:13","window_to":"2026-08-29 09:00:13"} 
[2026-08-29 09:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-29 09:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 09:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 09:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 09:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 09:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 09:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 09:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 08:15:06","window_to":"2026-08-29 09:15:06"} 
[2026-08-29 09:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 09:00:12","page":1} 
[2026-08-29 09:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 09:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 09:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 09:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 09:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 09:20:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 09:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-29 09:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 09:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 09:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 08:30:06","window_to":"2026-08-29 09:30:06"} 
[2026-08-29 09:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 09:15:09","page":1} 
[2026-08-29 09:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 09:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 09:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 09:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 09:35:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 09:35:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 09:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-29 09:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 09:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 08:45:05","window_to":"2026-08-29 09:45:05"} 
[2026-08-29 09:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 09:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 09:30:10","page":1} 
[2026-08-29 09:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 09:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 09:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 09:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 09:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 09:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 09:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 09:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 10:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 09:00:06","window_to":"2026-08-29 10:00:06"} 
[2026-08-29 10:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 09:00:07","window_to":"2026-08-29 10:00:07"} 
[2026-08-29 10:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-29 10:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-29 10:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 09:45:08","page":1} 
[2026-08-29 10:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 10:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 10:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 10:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-29 09:00:13","window_to":"2026-08-29 10:00:13"} 
[2026-08-29 10:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-29 10:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 10:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 10:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 10:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 10:10:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 10:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 09:15:06","window_to":"2026-08-29 10:15:06"} 
[2026-08-29 10:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 10:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 10:00:12","page":1} 
[2026-08-29 10:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 10:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 10:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 10:15:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 10:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 10:20:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 10:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 10:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 10:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 09:30:07","window_to":"2026-08-29 10:30:07"} 
[2026-08-29 10:30:08] local.INFO: Webhook retries processed successfully  
[2026-08-29 10:30:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 10:15:10","page":1} 
[2026-08-29 10:30:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 10:30:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 10:30:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 10:30:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 10:35:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 10:35:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 10:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 10:40:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 10:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 10:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 09:45:06","window_to":"2026-08-29 10:45:06"} 
[2026-08-29 10:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 10:30:11","page":1} 
[2026-08-29 10:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 10:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 10:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 10:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 10:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 10:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 10:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 10:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 11:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 10:00:07","window_to":"2026-08-29 11:00:07"} 
[2026-08-29 11:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 10:00:07","window_to":"2026-08-29 11:00:07"} 
[2026-08-29 11:00:08] local.INFO: Webhook health check completed successfully  
[2026-08-29 11:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-29 11:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 10:45:09","page":1} 
[2026-08-29 11:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 11:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 11:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 11:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-29 10:00:13","window_to":"2026-08-29 11:00:13"} 
[2026-08-29 11:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-29 11:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 11:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 11:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 11:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 11:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 11:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 10:15:06","window_to":"2026-08-29 11:15:06"} 
[2026-08-29 11:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 11:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 11:00:12","page":1} 
[2026-08-29 11:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 11:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 11:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 11:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 11:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 11:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 11:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 11:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 11:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 10:30:06","window_to":"2026-08-29 11:30:06"} 
[2026-08-29 11:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 11:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 11:15:09","page":1} 
[2026-08-29 11:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 11:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 11:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 11:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 11:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 11:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 11:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 11:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 11:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 10:45:06","window_to":"2026-08-29 11:45:06"} 
[2026-08-29 11:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 11:45:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 11:30:09","page":1} 
[2026-08-29 11:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 11:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 11:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 11:45:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 11:50:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 11:50:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 11:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 11:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 12:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 11:00:07","window_to":"2026-08-29 12:00:07"} 
[2026-08-29 12:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 11:00:07","window_to":"2026-08-29 12:00:07"} 
[2026-08-29 12:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-29 12:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-29 12:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 11:45:10","page":1} 
[2026-08-29 12:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 12:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 12:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 12:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-29 11:00:12","window_to":"2026-08-29 12:00:12"} 
[2026-08-29 12:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-29 12:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 12:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 12:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 12:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 12:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 12:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 11:15:06","window_to":"2026-08-29 12:15:06"} 
[2026-08-29 12:15:07] local.INFO: Webhook retries processed successfully  
[2026-08-29 12:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 12:00:11","page":1} 
[2026-08-29 12:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 12:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 12:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 12:15:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 12:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 12:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 12:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 12:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 12:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 11:30:05","window_to":"2026-08-29 12:30:05"} 
[2026-08-29 12:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 12:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 12:15:10","page":1} 
[2026-08-29 12:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 12:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 12:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 12:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 12:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 12:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 12:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 12:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 12:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 11:45:06","window_to":"2026-08-29 12:45:06"} 
[2026-08-29 12:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 12:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 12:30:09","page":1} 
[2026-08-29 12:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 12:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 12:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 12:45:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 12:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 12:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 12:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 12:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 13:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 12:00:06","window_to":"2026-08-29 13:00:06"} 
[2026-08-29 13:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 12:00:06","window_to":"2026-08-29 13:00:06"} 
[2026-08-29 13:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-29 13:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-29 13:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 12:45:09","page":1} 
[2026-08-29 13:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 13:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 13:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 13:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-29 12:00:12","window_to":"2026-08-29 13:00:12"} 
[2026-08-29 13:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-29 13:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 13:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 13:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 13:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 13:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 13:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 12:15:05","window_to":"2026-08-29 13:15:05"} 
[2026-08-29 13:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 13:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 13:00:11","page":1} 
[2026-08-29 13:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 13:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 13:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 13:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 13:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 13:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 13:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 13:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 13:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 13:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 12:30:05","window_to":"2026-08-29 13:30:05"} 
[2026-08-29 13:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 13:15:08","page":1} 
[2026-08-29 13:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 13:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 13:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 13:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 13:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 13:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 13:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 13:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 13:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 12:45:05","window_to":"2026-08-29 13:45:05"} 
[2026-08-29 13:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 13:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 13:30:08","page":1} 
[2026-08-29 13:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 13:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 13:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 13:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 13:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 13:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 13:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 13:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 14:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 13:00:07","window_to":"2026-08-29 14:00:07"} 
[2026-08-29 14:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 13:00:07","window_to":"2026-08-29 14:00:07"} 
[2026-08-29 14:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-29 14:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-29 14:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 13:45:09","page":1} 
[2026-08-29 14:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 14:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 14:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 14:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-29 13:00:13","window_to":"2026-08-29 14:00:13"} 
[2026-08-29 14:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-29 14:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 14:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 14:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 14:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 14:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 14:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 14:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 13:15:06","window_to":"2026-08-29 14:15:06"} 
[2026-08-29 14:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 14:00:12","page":1} 
[2026-08-29 14:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 14:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 14:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 14:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 14:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 14:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 14:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 14:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 14:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 13:30:06","window_to":"2026-08-29 14:30:06"} 
[2026-08-29 14:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-29 14:30:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 14:15:09","page":1} 
[2026-08-29 14:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 14:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 14:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 14:30:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 14:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 14:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 14:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 14:40:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 14:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 14:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 13:45:06","window_to":"2026-08-29 14:45:06"} 
[2026-08-29 14:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 14:30:11","page":1} 
[2026-08-29 14:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 14:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 14:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 14:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 14:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 14:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 14:55:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 14:55:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 15:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 14:00:07","window_to":"2026-08-29 15:00:07"} 
[2026-08-29 15:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-29 15:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 14:00:07","window_to":"2026-08-29 15:00:07"} 
[2026-08-29 15:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-29 15:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 14:45:09","page":1} 
[2026-08-29 15:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 15:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 15:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 15:00:14] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-29 14:00:14","window_to":"2026-08-29 15:00:14"} 
[2026-08-29 15:00:14] local.INFO: TikTok webhook health check completed successfully  
[2026-08-29 15:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 15:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 15:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 15:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 15:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 15:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 14:15:06","window_to":"2026-08-29 15:15:06"} 
[2026-08-29 15:15:07] local.INFO: Webhook retries processed successfully  
[2026-08-29 15:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 15:00:12","page":1} 
[2026-08-29 15:15:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 15:15:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 15:15:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 15:15:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 15:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 15:20:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 15:25:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 15:25:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 15:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 14:30:06","window_to":"2026-08-29 15:30:07"} 
[2026-08-29 15:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-29 15:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 15:15:10","page":1} 
[2026-08-29 15:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 15:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 15:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 15:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 15:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 15:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 15:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 15:40:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 15:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 14:45:06","window_to":"2026-08-29 15:45:06"} 
[2026-08-29 15:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 15:45:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 15:30:10","page":1} 
[2026-08-29 15:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 15:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 15:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 15:45:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 15:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 15:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 15:55:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 15:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 16:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 15:00:07","window_to":"2026-08-29 16:00:07"} 
[2026-08-29 16:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-29 16:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 15:00:08","window_to":"2026-08-29 16:00:08"} 
[2026-08-29 16:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-29 16:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 15:45:10","page":1} 
[2026-08-29 16:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 16:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 16:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 16:00:14] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-29 15:00:14","window_to":"2026-08-29 16:00:14"} 
[2026-08-29 16:00:14] local.INFO: TikTok webhook health check completed successfully  
[2026-08-29 16:00:15] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 16:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 16:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 16:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 16:10:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 16:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 15:15:06","window_to":"2026-08-29 16:15:06"} 
[2026-08-29 16:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 16:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 16:00:13","page":1} 
[2026-08-29 16:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 16:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 16:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 16:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 16:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 16:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 16:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 16:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 16:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 15:30:06","window_to":"2026-08-29 16:30:06"} 
[2026-08-29 16:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-29 16:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 16:15:09","page":1} 
[2026-08-29 16:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 16:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 16:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 16:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 16:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 16:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 16:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 16:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 16:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 16:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 15:45:06","window_to":"2026-08-29 16:45:06"} 
[2026-08-29 16:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 16:30:10","page":1} 
[2026-08-29 16:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 16:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 16:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 16:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 16:50:07] local.INFO: Webhook retries processed successfully  
[2026-08-29 16:50:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 16:55:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 16:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 17:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 16:00:06","window_to":"2026-08-29 17:00:06"} 
[2026-08-29 17:00:07] local.INFO: Staff auto-checkout completed successfully  
[2026-08-29 17:00:10] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 16:00:10","window_to":"2026-08-29 17:00:10"} 
[2026-08-29 17:00:10] local.INFO: Webhook health check completed successfully  
[2026-08-29 17:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-29 17:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 16:45:09","page":1} 
[2026-08-29 17:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 17:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 17:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 17:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-29 16:00:12","window_to":"2026-08-29 17:00:12"} 
[2026-08-29 17:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-29 17:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 17:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 17:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 17:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 17:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 17:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 16:15:06","window_to":"2026-08-29 17:15:06"} 
[2026-08-29 17:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 17:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 17:00:11","page":1} 
[2026-08-29 17:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 17:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 17:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 17:15:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 17:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 17:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 17:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 17:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 17:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 16:30:06","window_to":"2026-08-29 17:30:06"} 
[2026-08-29 17:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-29 17:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 17:15:10","page":1} 
[2026-08-29 17:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 17:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 17:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 17:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 17:35:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 17:35:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 17:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 17:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 17:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 17:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 16:45:06","window_to":"2026-08-29 17:45:06"} 
[2026-08-29 17:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 17:30:10","page":1} 
[2026-08-29 17:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 17:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 17:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 17:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 17:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 17:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 17:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 17:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 18:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 17:00:06","window_to":"2026-08-29 18:00:07"} 
[2026-08-29 18:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 17:00:07","window_to":"2026-08-29 18:00:07"} 
[2026-08-29 18:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-29 18:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-29 18:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 17:45:08","page":1} 
[2026-08-29 18:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 18:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 18:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 18:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-29 17:00:12","window_to":"2026-08-29 18:00:12"} 
[2026-08-29 18:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-29 18:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 18:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 18:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 18:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 18:10:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 18:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 17:15:05","window_to":"2026-08-29 18:15:05"} 
[2026-08-29 18:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 18:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 18:00:12","page":1} 
[2026-08-29 18:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 18:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 18:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 18:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 18:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 18:20:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 18:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 18:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 18:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-29 18:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 17:30:07","window_to":"2026-08-29 18:30:07"} 
[2026-08-29 18:30:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 18:15:09","page":1} 
[2026-08-29 18:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 18:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 18:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 18:30:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 18:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 18:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 18:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 18:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 18:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 17:45:05","window_to":"2026-08-29 18:45:05"} 
[2026-08-29 18:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 18:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 18:30:11","page":1} 
[2026-08-29 18:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 18:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 18:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 18:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 18:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 18:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 18:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 18:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 19:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 18:00:07","window_to":"2026-08-29 19:00:07"} 
[2026-08-29 19:00:08] local.INFO: Webhook health check completed successfully  
[2026-08-29 19:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 18:00:08","window_to":"2026-08-29 19:00:08"} 
[2026-08-29 19:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-29 19:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 18:45:09","page":1} 
[2026-08-29 19:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 19:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 19:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 19:00:14] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-29 18:00:14","window_to":"2026-08-29 19:00:14"} 
[2026-08-29 19:00:14] local.INFO: TikTok webhook health check completed successfully  
[2026-08-29 19:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 19:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 19:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 19:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 19:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 19:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 18:15:06","window_to":"2026-08-29 19:15:06"} 
[2026-08-29 19:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 19:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 19:00:13","page":1} 
[2026-08-29 19:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 19:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 19:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 19:15:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 19:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 19:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 19:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 19:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 19:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 18:30:07","window_to":"2026-08-29 19:30:07"} 
[2026-08-29 19:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-29 19:30:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 19:15:10","page":1} 
[2026-08-29 19:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 19:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 19:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 19:30:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 19:35:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 19:35:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 19:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 19:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 19:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 19:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 18:45:06","window_to":"2026-08-29 19:45:06"} 
[2026-08-29 19:45:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 19:30:11","page":1} 
[2026-08-29 19:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 19:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 19:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 19:45:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 19:50:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 19:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 19:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 19:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 20:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 19:00:07","window_to":"2026-08-29 20:00:07"} 
[2026-08-29 20:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 19:00:07","window_to":"2026-08-29 20:00:07"} 
[2026-08-29 20:00:08] local.INFO: Webhook health check completed successfully  
[2026-08-29 20:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-29 20:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 19:45:09","page":1} 
[2026-08-29 20:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 20:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 20:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 20:00:14] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-29 19:00:13","window_to":"2026-08-29 20:00:13"} 
[2026-08-29 20:00:14] local.INFO: TikTok webhook health check completed successfully  
[2026-08-29 20:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 20:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 20:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 20:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-29 20:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 20:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 20:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 19:15:06","window_to":"2026-08-29 20:15:06"} 
[2026-08-29 20:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 20:00:13","page":1} 
[2026-08-29 20:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 20:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 20:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 20:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 20:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 20:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 20:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-29 20:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 20:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-29 20:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 19:30:07","window_to":"2026-08-29 20:30:07"} 
[2026-08-29 20:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 20:15:09","page":1} 
[2026-08-29 20:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 20:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 20:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 20:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 20:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 20:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 20:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 20:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 20:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 20:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 19:45:06","window_to":"2026-08-29 20:45:06"} 
[2026-08-29 20:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 20:30:10","page":1} 
[2026-08-29 20:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 20:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 20:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 20:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 20:50:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 20:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 20:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 20:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 21:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 20:00:06","window_to":"2026-08-29 21:00:06"} 
[2026-08-29 21:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 20:00:07","window_to":"2026-08-29 21:00:07"} 
[2026-08-29 21:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-29 21:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-29 21:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 20:45:09","page":1} 
[2026-08-29 21:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 21:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 21:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 21:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-29 20:00:12","window_to":"2026-08-29 21:00:12"} 
[2026-08-29 21:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-29 21:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 21:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 21:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 21:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 21:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 21:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 20:15:05","window_to":"2026-08-29 21:15:05"} 
[2026-08-29 21:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 21:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 21:00:11","page":1} 
[2026-08-29 21:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 21:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 21:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 21:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 21:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-29 21:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 21:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 21:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 21:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 21:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 20:30:06","window_to":"2026-08-29 21:30:06"} 
[2026-08-29 21:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 21:15:08","page":1} 
[2026-08-29 21:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 21:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 21:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 21:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 21:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 21:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 21:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 21:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 21:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 20:45:06","window_to":"2026-08-29 21:45:06"} 
[2026-08-29 21:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 21:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 21:30:09","page":1} 
[2026-08-29 21:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 21:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 21:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 21:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 21:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 21:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 21:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 21:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 22:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 21:00:07","window_to":"2026-08-29 22:00:07"} 
[2026-08-29 22:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 21:00:07","window_to":"2026-08-29 22:00:07"} 
[2026-08-29 22:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-29 22:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-29 22:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 21:45:09","page":1} 
[2026-08-29 22:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 22:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 22:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 22:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-29 21:00:13","window_to":"2026-08-29 22:00:13"} 
[2026-08-29 22:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-29 22:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 22:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 22:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 22:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 22:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 22:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 21:15:06","window_to":"2026-08-29 22:15:06"} 
[2026-08-29 22:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 22:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 22:00:12","page":1} 
[2026-08-29 22:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 22:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 22:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 22:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 22:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 22:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 22:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 22:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 22:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 22:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 21:30:06","window_to":"2026-08-29 22:30:06"} 
[2026-08-29 22:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 22:15:09","page":1} 
[2026-08-29 22:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 22:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 22:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 22:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 22:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 22:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 22:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 22:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 22:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 21:45:05","window_to":"2026-08-29 22:45:05"} 
[2026-08-29 22:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 22:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 22:30:10","page":1} 
[2026-08-29 22:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 22:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 22:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 22:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 22:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 22:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 22:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 22:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 23:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 22:00:07","window_to":"2026-08-29 23:00:07"} 
[2026-08-29 23:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 22:00:07","window_to":"2026-08-29 23:00:07"} 
[2026-08-29 23:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-29 23:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-29 23:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 22:45:08","page":1} 
[2026-08-29 23:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 23:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 23:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 23:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-29 22:00:12","window_to":"2026-08-29 23:00:12"} 
[2026-08-29 23:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-29 23:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 23:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 23:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 23:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 23:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 23:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 22:15:05","window_to":"2026-08-29 23:15:05"} 
[2026-08-29 23:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 23:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 23:00:11","page":1} 
[2026-08-29 23:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 23:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 23:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 23:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 23:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 23:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 23:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 23:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 23:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 22:30:05","window_to":"2026-08-29 23:30:06"} 
[2026-08-29 23:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-29 23:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 23:15:09","page":1} 
[2026-08-29 23:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 23:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 23:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 23:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 23:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 23:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 23:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-29 23:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 23:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 22:45:04","window_to":"2026-08-29 23:45:05"} 
[2026-08-29 23:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 23:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 23:30:09","page":1} 
[2026-08-29 23:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-29 23:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-29 23:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-29 23:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 23:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 23:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-29 23:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-29 23:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 00:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 23:00:08","window_to":"2026-08-30 00:00:08"} 
[2026-08-30 00:00:09] local.INFO: Commission cleanup completed successfully  
[2026-08-30 00:00:13] local.INFO: Student payment status check completed successfully  
[2026-08-30 00:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 23:00:13","window_to":"2026-08-30 00:00:13"} 
[2026-08-30 00:00:13] local.INFO: Webhook health check completed successfully  
[2026-08-30 00:00:14] local.INFO: Webhook retries processed successfully  
[2026-08-30 00:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-29 23:45:08","page":1} 
[2026-08-30 00:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 00:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 00:00:15] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 00:00:15] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-29 23:00:15","window_to":"2026-08-30 00:00:15"} 
[2026-08-30 00:00:15] local.INFO: TikTok webhook health check completed successfully  
[2026-08-30 00:00:16] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 00:00:17] local.INFO: Student payment status check completed successfully  
[2026-08-30 00:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 00:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 00:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 00:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 00:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 23:15:05","window_to":"2026-08-30 00:15:05"} 
[2026-08-30 00:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 00:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 00:00:15","page":1} 
[2026-08-30 00:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 00:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 00:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 00:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 00:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-30 00:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 00:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-30 00:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 00:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 00:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 23:30:06","window_to":"2026-08-30 00:30:06"} 
[2026-08-30 00:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 00:15:09","page":1} 
[2026-08-30 00:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 00:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 00:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 00:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 00:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 00:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 00:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 00:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 00:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-29 23:45:05","window_to":"2026-08-30 00:45:05"} 
[2026-08-30 00:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 00:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 00:30:09","page":1} 
[2026-08-30 00:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 00:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 00:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 00:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 00:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-30 00:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 00:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 00:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 01:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 00:00:07","window_to":"2026-08-30 01:00:07"} 
[2026-08-30 01:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 00:00:07","window_to":"2026-08-30 01:00:07"} 
[2026-08-30 01:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-30 01:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-30 01:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 00:45:09","page":1} 
[2026-08-30 01:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 01:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 01:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 01:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-30 00:00:13","window_to":"2026-08-30 01:00:13"} 
[2026-08-30 01:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-30 01:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 01:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 01:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 01:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-30 01:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 01:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 00:15:05","window_to":"2026-08-30 01:15:05"} 
[2026-08-30 01:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 01:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 01:00:12","page":1} 
[2026-08-30 01:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 01:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 01:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 01:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 01:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 01:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 01:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 01:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 01:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 01:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 00:30:06","window_to":"2026-08-30 01:30:06"} 
[2026-08-30 01:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 01:15:09","page":1} 
[2026-08-30 01:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 01:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 01:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 01:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 01:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 01:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 01:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 01:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 01:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 00:45:05","window_to":"2026-08-30 01:45:05"} 
[2026-08-30 01:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 01:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 01:30:10","page":1} 
[2026-08-30 01:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 01:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 01:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 01:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 01:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 01:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 01:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 01:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 02:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 01:00:07","window_to":"2026-08-30 02:00:07"} 
[2026-08-30 02:00:07] local.INFO: JWT secrets rotated successfully  
[2026-08-30 02:00:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 01:00:11","window_to":"2026-08-30 02:00:11"} 
[2026-08-30 02:00:11] local.INFO: Webhook health check completed successfully  
[2026-08-30 02:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-30 02:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 01:45:09","page":1} 
[2026-08-30 02:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 02:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 02:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 02:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-30 01:00:13","window_to":"2026-08-30 02:00:13"} 
[2026-08-30 02:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-30 02:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 02:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 02:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 02:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 02:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 02:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 01:15:05","window_to":"2026-08-30 02:15:05"} 
[2026-08-30 02:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 02:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 02:00:13","page":1} 
[2026-08-30 02:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 02:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 02:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 02:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 02:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 02:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 02:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 02:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 02:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 02:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 01:30:06","window_to":"2026-08-30 02:30:06"} 
[2026-08-30 02:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 02:15:09","page":1} 
[2026-08-30 02:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 02:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 02:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 02:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 02:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-30 02:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 02:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 02:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 02:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 01:45:05","window_to":"2026-08-30 02:45:05"} 
[2026-08-30 02:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 02:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 02:30:10","page":1} 
[2026-08-30 02:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 02:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 02:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 02:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 02:50:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 02:50:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 02:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 02:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 03:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 02:00:06","window_to":"2026-08-30 03:00:06"} 
[2026-08-30 03:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 02:00:06","window_to":"2026-08-30 03:00:07"} 
[2026-08-30 03:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-30 03:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-30 03:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 02:45:09","page":1} 
[2026-08-30 03:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 03:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 03:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 03:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-30 02:00:12","window_to":"2026-08-30 03:00:12"} 
[2026-08-30 03:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-30 03:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 03:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-30 03:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 03:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 03:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 03:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 02:15:05","window_to":"2026-08-30 03:15:05"} 
[2026-08-30 03:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 03:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 03:00:11","page":1} 
[2026-08-30 03:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 03:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 03:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 03:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 03:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 03:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 03:25:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 03:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 03:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 03:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 02:30:06","window_to":"2026-08-30 03:30:06"} 
[2026-08-30 03:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 03:15:09","page":1} 
[2026-08-30 03:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 03:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 03:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 03:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 03:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-30 03:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 03:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 03:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 03:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 03:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 02:45:05","window_to":"2026-08-30 03:45:06"} 
[2026-08-30 03:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 03:30:09","page":1} 
[2026-08-30 03:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 03:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 03:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 03:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 03:50:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 03:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 03:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 03:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 04:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 03:00:06","window_to":"2026-08-30 04:00:06"} 
[2026-08-30 04:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 03:00:06","window_to":"2026-08-30 04:00:06"} 
[2026-08-30 04:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-30 04:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-30 04:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 03:45:09","page":1} 
[2026-08-30 04:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 04:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 04:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 04:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-30 03:00:12","window_to":"2026-08-30 04:00:12"} 
[2026-08-30 04:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-30 04:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 04:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 04:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 04:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 04:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 04:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 04:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 03:15:06","window_to":"2026-08-30 04:15:06"} 
[2026-08-30 04:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 04:00:11","page":1} 
[2026-08-30 04:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 04:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 04:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 04:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 04:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 04:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 04:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 04:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 04:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 03:30:06","window_to":"2026-08-30 04:30:06"} 
[2026-08-30 04:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 04:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 04:15:09","page":1} 
[2026-08-30 04:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 04:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 04:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 04:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 04:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 04:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 04:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 04:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 04:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 03:45:06","window_to":"2026-08-30 04:45:06"} 
[2026-08-30 04:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 04:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 04:30:10","page":1} 
[2026-08-30 04:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 04:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 04:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 04:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 04:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 04:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 04:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 04:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 05:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 04:00:07","window_to":"2026-08-30 05:00:07"} 
[2026-08-30 05:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 04:00:07","window_to":"2026-08-30 05:00:07"} 
[2026-08-30 05:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-30 05:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-30 05:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 04:45:09","page":1} 
[2026-08-30 05:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 05:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 05:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 05:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-30 04:00:12","window_to":"2026-08-30 05:00:12"} 
[2026-08-30 05:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-30 05:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 05:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 05:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 05:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 05:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 05:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 04:15:05","window_to":"2026-08-30 05:15:05"} 
[2026-08-30 05:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 05:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 05:00:11","page":1} 
[2026-08-30 05:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 05:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 05:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 05:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 05:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 05:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 05:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-30 05:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 05:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 04:30:07","window_to":"2026-08-30 05:30:07"} 
[2026-08-30 05:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-30 05:30:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 05:15:08","page":1} 
[2026-08-30 05:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 05:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 05:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 05:30:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 05:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 05:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 05:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 05:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 05:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 04:45:05","window_to":"2026-08-30 05:45:05"} 
[2026-08-30 05:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 05:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 05:30:11","page":1} 
[2026-08-30 05:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 05:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 05:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 05:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 05:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 05:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 05:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 05:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 06:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 05:00:06","window_to":"2026-08-30 06:00:06"} 
[2026-08-30 06:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 05:00:06","window_to":"2026-08-30 06:00:06"} 
[2026-08-30 06:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-30 06:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-30 06:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 05:45:08","page":1} 
[2026-08-30 06:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 06:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 06:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 06:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-30 05:00:12","window_to":"2026-08-30 06:00:12"} 
[2026-08-30 06:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-30 06:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 06:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 06:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 06:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 06:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 06:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 05:15:06","window_to":"2026-08-30 06:15:06"} 
[2026-08-30 06:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 06:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 06:00:11","page":1} 
[2026-08-30 06:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 06:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 06:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 06:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 06:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 06:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 06:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-30 06:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 06:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 05:30:06","window_to":"2026-08-30 06:30:06"} 
[2026-08-30 06:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-30 06:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 06:15:09","page":1} 
[2026-08-30 06:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 06:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 06:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 06:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 06:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 06:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 06:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 06:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 06:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 05:45:06","window_to":"2026-08-30 06:45:06"} 
[2026-08-30 06:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 06:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 06:30:10","page":1} 
[2026-08-30 06:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 06:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 06:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 06:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 06:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 06:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 06:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 06:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 07:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 06:00:07","window_to":"2026-08-30 07:00:07"} 
[2026-08-30 07:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 06:00:07","window_to":"2026-08-30 07:00:07"} 
[2026-08-30 07:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-30 07:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-30 07:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 06:45:09","page":1} 
[2026-08-30 07:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 07:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 07:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 07:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-30 06:00:13","window_to":"2026-08-30 07:00:13"} 
[2026-08-30 07:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-30 07:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 07:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 07:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 07:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-30 07:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 07:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 06:15:06","window_to":"2026-08-30 07:15:06"} 
[2026-08-30 07:15:07] local.INFO: Webhook retries processed successfully  
[2026-08-30 07:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 07:00:12","page":1} 
[2026-08-30 07:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 07:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 07:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 07:15:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 07:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 07:20:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 07:25:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 07:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 07:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 06:30:06","window_to":"2026-08-30 07:30:06"} 
[2026-08-30 07:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-30 07:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 07:15:10","page":1} 
[2026-08-30 07:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 07:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 07:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 07:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 07:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 07:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 07:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 07:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 07:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 06:45:06","window_to":"2026-08-30 07:45:06"} 
[2026-08-30 07:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 07:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 07:30:10","page":1} 
[2026-08-30 07:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 07:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 07:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 07:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 07:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 07:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 07:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 07:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 08:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 07:00:07","window_to":"2026-08-30 08:00:07"} 
[2026-08-30 08:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 07:00:07","window_to":"2026-08-30 08:00:07"} 
[2026-08-30 08:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-30 08:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-30 08:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 07:45:09","page":1} 
[2026-08-30 08:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 08:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 08:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 08:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-30 07:00:13","window_to":"2026-08-30 08:00:13"} 
[2026-08-30 08:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-30 08:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 08:00:15] local.INFO: Student payment reminder notifications sent successfully  
[2026-08-30 08:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 08:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 08:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 08:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 08:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 07:15:06","window_to":"2026-08-30 08:15:06"} 
[2026-08-30 08:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 08:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 08:00:12","page":1} 
[2026-08-30 08:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 08:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 08:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 08:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 08:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 08:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 08:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 08:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 08:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 07:30:06","window_to":"2026-08-30 08:30:06"} 
[2026-08-30 08:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 08:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 08:15:09","page":1} 
[2026-08-30 08:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 08:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 08:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 08:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 08:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 08:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 08:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 08:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 08:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 07:45:05","window_to":"2026-08-30 08:45:05"} 
[2026-08-30 08:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 08:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 08:30:09","page":1} 
[2026-08-30 08:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 08:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 08:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 08:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 08:50:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 08:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 08:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 08:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 09:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 08:00:07","window_to":"2026-08-30 09:00:07"} 
[2026-08-30 09:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 08:00:07","window_to":"2026-08-30 09:00:07"} 
[2026-08-30 09:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-30 09:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-30 09:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 08:45:08","page":1} 
[2026-08-30 09:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 09:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 09:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 09:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-30 08:00:13","window_to":"2026-08-30 09:00:13"} 
[2026-08-30 09:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-30 09:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 09:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 09:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 09:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-30 09:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 09:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 09:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 08:15:06","window_to":"2026-08-30 09:15:06"} 
[2026-08-30 09:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 09:00:12","page":1} 
[2026-08-30 09:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 09:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 09:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 09:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 09:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 09:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 09:25:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 09:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 09:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 09:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 08:30:06","window_to":"2026-08-30 09:30:06"} 
[2026-08-30 09:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 09:15:09","page":1} 
[2026-08-30 09:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 09:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 09:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 09:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 09:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 09:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 09:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 09:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 09:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 09:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 08:45:06","window_to":"2026-08-30 09:45:06"} 
[2026-08-30 09:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 09:30:10","page":1} 
[2026-08-30 09:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 09:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 09:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 09:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 09:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 09:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 09:55:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 09:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 10:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 09:00:06","window_to":"2026-08-30 10:00:06"} 
[2026-08-30 10:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 09:00:06","window_to":"2026-08-30 10:00:06"} 
[2026-08-30 10:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-30 10:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-30 10:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 09:45:09","page":1} 
[2026-08-30 10:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 10:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 10:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 10:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-30 09:00:11","window_to":"2026-08-30 10:00:11"} 
[2026-08-30 10:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-30 10:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 10:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 10:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 10:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 10:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 10:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 09:15:05","window_to":"2026-08-30 10:15:05"} 
[2026-08-30 10:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 10:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 10:00:11","page":1} 
[2026-08-30 10:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 10:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 10:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 10:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 10:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 10:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 10:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 10:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 10:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 10:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 09:30:06","window_to":"2026-08-30 10:30:06"} 
[2026-08-30 10:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 10:15:08","page":1} 
[2026-08-30 10:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 10:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 10:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 10:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 10:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-30 10:35:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 10:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 10:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 10:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 09:45:05","window_to":"2026-08-30 10:45:05"} 
[2026-08-30 10:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 10:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 10:30:09","page":1} 
[2026-08-30 10:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 10:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 10:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 10:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 10:50:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 10:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 10:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 10:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 11:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 10:00:08","window_to":"2026-08-30 11:00:08"} 
[2026-08-30 11:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 10:00:08","window_to":"2026-08-30 11:00:08"} 
[2026-08-30 11:00:08] local.INFO: Webhook health check completed successfully  
[2026-08-30 11:00:13] local.INFO: Webhook retries processed successfully  
[2026-08-30 11:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 10:45:09","page":1} 
[2026-08-30 11:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 11:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 11:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 11:00:14] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-30 10:00:14","window_to":"2026-08-30 11:00:14"} 
[2026-08-30 11:00:14] local.INFO: TikTok webhook health check completed successfully  
[2026-08-30 11:00:15] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 11:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 11:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 11:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 11:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 11:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 11:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 10:15:07","window_to":"2026-08-30 11:15:07"} 
[2026-08-30 11:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 11:00:13","page":1} 
[2026-08-30 11:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 11:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 11:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 11:15:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 11:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 11:20:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 11:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 11:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 11:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 10:30:06","window_to":"2026-08-30 11:30:06"} 
[2026-08-30 11:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 11:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 11:15:10","page":1} 
[2026-08-30 11:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 11:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 11:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 11:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 11:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 11:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 11:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 11:40:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 11:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 10:45:05","window_to":"2026-08-30 11:45:05"} 
[2026-08-30 11:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 11:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 11:30:10","page":1} 
[2026-08-30 11:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 11:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 11:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 11:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 11:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 11:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 11:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 11:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 12:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 11:00:07","window_to":"2026-08-30 12:00:07"} 
[2026-08-30 12:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 11:00:07","window_to":"2026-08-30 12:00:07"} 
[2026-08-30 12:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-30 12:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-30 12:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 11:45:09","page":1} 
[2026-08-30 12:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 12:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 12:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 12:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-30 11:00:12","window_to":"2026-08-30 12:00:12"} 
[2026-08-30 12:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-30 12:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 12:05:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 12:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 12:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 12:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 12:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 11:15:05","window_to":"2026-08-30 12:15:05"} 
[2026-08-30 12:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 12:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 12:00:12","page":1} 
[2026-08-30 12:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 12:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 12:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 12:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 12:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 12:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 12:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-30 12:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 12:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 11:30:06","window_to":"2026-08-30 12:30:06"} 
[2026-08-30 12:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 12:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 12:15:09","page":1} 
[2026-08-30 12:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 12:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 12:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 12:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 12:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 12:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 12:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 12:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 12:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 11:45:06","window_to":"2026-08-30 12:45:06"} 
[2026-08-30 12:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 12:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 12:30:10","page":1} 
[2026-08-30 12:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 12:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 12:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 12:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 12:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 12:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 12:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 12:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 13:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 12:00:07","window_to":"2026-08-30 13:00:07"} 
[2026-08-30 13:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 12:00:07","window_to":"2026-08-30 13:00:07"} 
[2026-08-30 13:00:08] local.INFO: Webhook health check completed successfully  
[2026-08-30 13:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-30 13:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 12:45:09","page":1} 
[2026-08-30 13:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 13:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 13:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 13:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-30 12:00:13","window_to":"2026-08-30 13:00:13"} 
[2026-08-30 13:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-30 13:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 13:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 13:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 13:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 13:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 13:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 13:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 12:15:06","window_to":"2026-08-30 13:15:06"} 
[2026-08-30 13:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 13:00:12","page":1} 
[2026-08-30 13:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 13:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 13:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 13:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 13:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 13:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 13:25:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 13:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 13:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 13:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 12:30:06","window_to":"2026-08-30 13:30:06"} 
[2026-08-30 13:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 13:15:09","page":1} 
[2026-08-30 13:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 13:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 13:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 13:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 13:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 13:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 13:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 13:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 13:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 12:45:06","window_to":"2026-08-30 13:45:06"} 
[2026-08-30 13:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 13:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 13:30:10","page":1} 
[2026-08-30 13:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 13:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 13:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 13:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 13:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 13:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 13:55:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 13:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 14:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 13:00:07","window_to":"2026-08-30 14:00:07"} 
[2026-08-30 14:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 13:00:07","window_to":"2026-08-30 14:00:07"} 
[2026-08-30 14:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-30 14:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-30 14:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 13:45:09","page":1} 
[2026-08-30 14:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 14:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 14:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 14:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-30 13:00:12","window_to":"2026-08-30 14:00:13"} 
[2026-08-30 14:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-30 14:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 14:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-30 14:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 14:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 14:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 14:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 14:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 13:15:06","window_to":"2026-08-30 14:15:06"} 
[2026-08-30 14:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 14:00:12","page":1} 
[2026-08-30 14:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 14:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 14:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 14:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 14:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 14:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 14:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 14:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 14:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 14:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 13:30:06","window_to":"2026-08-30 14:30:06"} 
[2026-08-30 14:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 14:15:09","page":1} 
[2026-08-30 14:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 14:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 14:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 14:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 14:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-30 14:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 14:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 14:40:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 14:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 13:45:05","window_to":"2026-08-30 14:45:05"} 
[2026-08-30 14:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 14:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 14:30:10","page":1} 
[2026-08-30 14:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 14:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 14:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 14:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 14:50:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 14:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 14:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 14:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 15:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 14:00:07","window_to":"2026-08-30 15:00:07"} 
[2026-08-30 15:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 14:00:07","window_to":"2026-08-30 15:00:07"} 
[2026-08-30 15:00:08] local.INFO: Webhook health check completed successfully  
[2026-08-30 15:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-30 15:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 14:45:09","page":1} 
[2026-08-30 15:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 15:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 15:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 15:00:14] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-30 14:00:14","window_to":"2026-08-30 15:00:14"} 
[2026-08-30 15:00:14] local.INFO: TikTok webhook health check completed successfully  
[2026-08-30 15:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 15:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 15:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 15:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 15:10:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 15:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 14:15:05","window_to":"2026-08-30 15:15:06"} 
[2026-08-30 15:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 15:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 15:00:13","page":1} 
[2026-08-30 15:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 15:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 15:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 15:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 15:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 15:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 15:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 15:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 15:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 14:30:06","window_to":"2026-08-30 15:30:06"} 
[2026-08-30 15:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 15:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 15:15:09","page":1} 
[2026-08-30 15:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 15:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 15:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 15:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 15:35:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 15:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 15:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 15:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 15:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 15:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 14:45:06","window_to":"2026-08-30 15:45:06"} 
[2026-08-30 15:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 15:30:09","page":1} 
[2026-08-30 15:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 15:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 15:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 15:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 15:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 15:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 15:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 15:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 16:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 15:00:06","window_to":"2026-08-30 16:00:06"} 
[2026-08-30 16:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-30 16:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 15:00:06","window_to":"2026-08-30 16:00:06"} 
[2026-08-30 16:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-30 16:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 15:45:09","page":1} 
[2026-08-30 16:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 16:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 16:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 16:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-30 15:00:12","window_to":"2026-08-30 16:00:12"} 
[2026-08-30 16:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-30 16:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 16:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 16:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 16:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 16:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 16:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 15:15:05","window_to":"2026-08-30 16:15:06"} 
[2026-08-30 16:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 16:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 16:00:11","page":1} 
[2026-08-30 16:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 16:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 16:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 16:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 16:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 16:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 16:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 16:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 16:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 15:30:07","window_to":"2026-08-30 16:30:07"} 
[2026-08-30 16:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-30 16:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 16:15:09","page":1} 
[2026-08-30 16:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 16:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 16:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 16:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 16:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 16:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 16:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 16:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 16:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 15:45:07","window_to":"2026-08-30 16:45:07"} 
[2026-08-30 16:45:07] local.INFO: Webhook retries processed successfully  
[2026-08-30 16:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 16:30:10","page":1} 
[2026-08-30 16:45:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 16:45:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 16:45:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 16:45:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 16:50:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 16:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 16:55:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 16:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 17:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 16:00:07","window_to":"2026-08-30 17:00:07"} 
[2026-08-30 17:00:07] local.INFO: Staff auto-checkout completed successfully  
[2026-08-30 17:00:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 16:00:11","window_to":"2026-08-30 17:00:11"} 
[2026-08-30 17:00:12] local.INFO: Webhook health check completed successfully  
[2026-08-30 17:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-30 17:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 16:45:11","page":1} 
[2026-08-30 17:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 17:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 17:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 17:00:14] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-30 16:00:14","window_to":"2026-08-30 17:00:14"} 
[2026-08-30 17:00:14] local.INFO: TikTok webhook health check completed successfully  
[2026-08-30 17:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 17:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 17:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 17:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 17:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 17:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 17:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 16:15:06","window_to":"2026-08-30 17:15:06"} 
[2026-08-30 17:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 17:00:13","page":1} 
[2026-08-30 17:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 17:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 17:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 17:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 17:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 17:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 17:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 17:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 17:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 16:30:06","window_to":"2026-08-30 17:30:06"} 
[2026-08-30 17:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 17:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 17:15:09","page":1} 
[2026-08-30 17:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 17:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 17:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 17:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 17:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-30 17:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 17:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-30 17:40:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 17:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 16:45:06","window_to":"2026-08-30 17:45:06"} 
[2026-08-30 17:45:07] local.INFO: Webhook retries processed successfully  
[2026-08-30 17:45:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 17:30:09","page":1} 
[2026-08-30 17:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 17:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 17:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 17:45:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 17:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 17:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 17:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 17:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 18:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 17:00:07","window_to":"2026-08-30 18:00:07"} 
[2026-08-30 18:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 17:00:07","window_to":"2026-08-30 18:00:07"} 
[2026-08-30 18:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-30 18:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-30 18:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 17:45:10","page":1} 
[2026-08-30 18:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 18:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 18:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 18:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-30 17:00:12","window_to":"2026-08-30 18:00:12"} 
[2026-08-30 18:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-30 18:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 18:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 18:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 18:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 18:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 18:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 18:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 17:15:06","window_to":"2026-08-30 18:15:06"} 
[2026-08-30 18:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 18:00:12","page":1} 
[2026-08-30 18:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 18:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 18:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 18:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 18:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 18:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 18:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 18:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 18:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 18:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 17:30:06","window_to":"2026-08-30 18:30:06"} 
[2026-08-30 18:30:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 18:15:09","page":1} 
[2026-08-30 18:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 18:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 18:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 18:30:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 18:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 18:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 18:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 18:40:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 18:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 17:45:06","window_to":"2026-08-30 18:45:06"} 
[2026-08-30 18:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 18:45:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 18:30:10","page":1} 
[2026-08-30 18:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 18:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 18:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 18:45:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 18:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 18:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 18:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 18:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 19:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 18:00:07","window_to":"2026-08-30 19:00:07"} 
[2026-08-30 19:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 18:00:07","window_to":"2026-08-30 19:00:07"} 
[2026-08-30 19:00:08] local.INFO: Webhook health check completed successfully  
[2026-08-30 19:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-30 19:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 18:45:10","page":1} 
[2026-08-30 19:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 19:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 19:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 19:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-30 18:00:13","window_to":"2026-08-30 19:00:13"} 
[2026-08-30 19:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-30 19:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 19:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 19:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 19:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-30 19:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 19:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 18:15:05","window_to":"2026-08-30 19:15:05"} 
[2026-08-30 19:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 19:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 19:00:12","page":1} 
[2026-08-30 19:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 19:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 19:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 19:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 19:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 19:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 19:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 19:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 19:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 18:30:06","window_to":"2026-08-30 19:30:06"} 
[2026-08-30 19:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 19:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 19:15:08","page":1} 
[2026-08-30 19:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 19:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 19:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 19:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 19:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 19:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 19:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 19:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 19:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 18:45:06","window_to":"2026-08-30 19:45:06"} 
[2026-08-30 19:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 19:45:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 19:30:10","page":1} 
[2026-08-30 19:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 19:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 19:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 19:45:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 19:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 19:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 19:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 19:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 20:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 19:00:07","window_to":"2026-08-30 20:00:07"} 
[2026-08-30 20:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 19:00:07","window_to":"2026-08-30 20:00:07"} 
[2026-08-30 20:00:08] local.INFO: Webhook health check completed successfully  
[2026-08-30 20:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-30 20:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 19:45:10","page":1} 
[2026-08-30 20:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 20:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 20:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 20:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-30 19:00:13","window_to":"2026-08-30 20:00:13"} 
[2026-08-30 20:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-30 20:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 20:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 20:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 20:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 20:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 20:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 19:15:06","window_to":"2026-08-30 20:15:06"} 
[2026-08-30 20:15:07] local.INFO: Webhook retries processed successfully  
[2026-08-30 20:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 20:00:12","page":1} 
[2026-08-30 20:15:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 20:15:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 20:15:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 20:15:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 20:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 20:20:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 20:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 20:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 20:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 19:30:06","window_to":"2026-08-30 20:30:06"} 
[2026-08-30 20:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 20:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 20:15:10","page":1} 
[2026-08-30 20:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 20:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 20:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 20:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 20:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 20:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 20:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 20:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 20:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 20:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 19:45:06","window_to":"2026-08-30 20:45:06"} 
[2026-08-30 20:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 20:30:10","page":1} 
[2026-08-30 20:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 20:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 20:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 20:45:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 20:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 20:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 20:55:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 20:55:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 21:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 20:00:07","window_to":"2026-08-30 21:00:07"} 
[2026-08-30 21:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 20:00:07","window_to":"2026-08-30 21:00:08"} 
[2026-08-30 21:00:08] local.INFO: Webhook health check completed successfully  
[2026-08-30 21:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-30 21:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 20:45:09","page":1} 
[2026-08-30 21:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 21:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 21:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 21:00:14] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-30 20:00:14","window_to":"2026-08-30 21:00:14"} 
[2026-08-30 21:00:14] local.INFO: TikTok webhook health check completed successfully  
[2026-08-30 21:00:15] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 21:05:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 21:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 21:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 21:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 21:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 21:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 20:15:06","window_to":"2026-08-30 21:15:06"} 
[2026-08-30 21:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 21:00:13","page":1} 
[2026-08-30 21:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 21:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 21:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 21:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 21:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 21:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 21:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 21:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 21:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 20:30:06","window_to":"2026-08-30 21:30:06"} 
[2026-08-30 21:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 21:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 21:15:09","page":1} 
[2026-08-30 21:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 21:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 21:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 21:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 21:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 21:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 21:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 21:40:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 21:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 20:45:06","window_to":"2026-08-30 21:45:06"} 
[2026-08-30 21:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 21:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 21:30:10","page":1} 
[2026-08-30 21:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 21:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 21:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 21:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 21:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 21:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 21:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 21:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 22:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 21:00:07","window_to":"2026-08-30 22:00:07"} 
[2026-08-30 22:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-30 22:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 21:00:07","window_to":"2026-08-30 22:00:07"} 
[2026-08-30 22:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-30 22:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 21:45:09","page":1} 
[2026-08-30 22:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 22:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 22:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 22:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-30 21:00:13","window_to":"2026-08-30 22:00:13"} 
[2026-08-30 22:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-30 22:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 22:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 22:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 22:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 22:10:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 22:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 22:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 21:15:06","window_to":"2026-08-30 22:15:06"} 
[2026-08-30 22:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 22:00:13","page":1} 
[2026-08-30 22:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 22:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 22:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 22:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 22:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-30 22:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 22:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 22:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 22:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 21:30:06","window_to":"2026-08-30 22:30:06"} 
[2026-08-30 22:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 22:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 22:15:09","page":1} 
[2026-08-30 22:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 22:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 22:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 22:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 22:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-30 22:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 22:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-30 22:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 22:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 21:45:05","window_to":"2026-08-30 22:45:05"} 
[2026-08-30 22:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 22:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 22:30:10","page":1} 
[2026-08-30 22:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 22:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 22:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 22:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 22:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 22:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 22:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 22:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 23:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 22:00:06","window_to":"2026-08-30 23:00:06"} 
[2026-08-30 23:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 22:00:06","window_to":"2026-08-30 23:00:06"} 
[2026-08-30 23:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-30 23:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-30 23:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 22:45:09","page":1} 
[2026-08-30 23:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 23:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 23:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 23:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-30 22:00:11","window_to":"2026-08-30 23:00:11"} 
[2026-08-30 23:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-30 23:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 23:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 23:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 23:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 23:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 23:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 22:15:05","window_to":"2026-08-30 23:15:05"} 
[2026-08-30 23:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 23:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 23:00:11","page":1} 
[2026-08-30 23:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 23:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 23:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 23:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 23:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 23:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 23:25:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 23:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 23:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 23:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 22:30:05","window_to":"2026-08-30 23:30:05"} 
[2026-08-30 23:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 23:15:08","page":1} 
[2026-08-30 23:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 23:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 23:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 23:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 23:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 23:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 23:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 23:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 23:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 22:45:05","window_to":"2026-08-30 23:45:05"} 
[2026-08-30 23:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-30 23:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 23:30:09","page":1} 
[2026-08-30 23:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-30 23:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-30 23:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-30 23:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 23:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 23:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-30 23:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-30 23:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 00:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 23:00:07","window_to":"2026-08-31 00:00:07"} 
[2026-08-31 00:00:07] local.INFO: Commission cleanup completed successfully  
[2026-08-31 00:00:12] local.INFO: Student payment status check completed successfully  
[2026-08-31 00:00:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 23:00:12","window_to":"2026-08-31 00:00:12"} 
[2026-08-31 00:00:12] local.INFO: Webhook health check completed successfully  
[2026-08-31 00:00:13] local.INFO: Webhook retries processed successfully  
[2026-08-31 00:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-30 23:45:08","page":1} 
[2026-08-31 00:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 00:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 00:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 00:00:14] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-30 23:00:14","window_to":"2026-08-31 00:00:14"} 
[2026-08-31 00:00:14] local.INFO: TikTok webhook health check completed successfully  
[2026-08-31 00:00:15] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 00:00:16] local.INFO: Student payment status check completed successfully  
[2026-08-31 00:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 00:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 00:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 00:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 00:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 00:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 23:15:05","window_to":"2026-08-31 00:15:05"} 
[2026-08-31 00:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 00:00:13","page":1} 
[2026-08-31 00:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 00:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 00:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 00:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 00:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 00:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 00:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 00:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 00:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 23:30:05","window_to":"2026-08-31 00:30:05"} 
[2026-08-31 00:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 00:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 00:15:08","page":1} 
[2026-08-31 00:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 00:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 00:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 00:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 00:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 00:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 00:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 00:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 00:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-30 23:45:05","window_to":"2026-08-31 00:45:05"} 
[2026-08-31 00:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 00:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 00:30:09","page":1} 
[2026-08-31 00:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 00:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 00:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 00:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 00:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 00:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 00:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 00:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 01:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 00:00:06","window_to":"2026-08-31 01:00:07"} 
[2026-08-31 01:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 00:00:07","window_to":"2026-08-31 01:00:07"} 
[2026-08-31 01:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-31 01:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-31 01:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 00:45:08","page":1} 
[2026-08-31 01:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 01:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 01:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 01:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-31 00:00:12","window_to":"2026-08-31 01:00:12"} 
[2026-08-31 01:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-31 01:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 01:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 01:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 01:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 01:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 01:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 01:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 00:15:06","window_to":"2026-08-31 01:15:06"} 
[2026-08-31 01:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 01:00:12","page":1} 
[2026-08-31 01:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 01:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 01:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 01:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 01:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 01:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 01:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 01:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 01:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 00:30:06","window_to":"2026-08-31 01:30:06"} 
[2026-08-31 01:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 01:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 01:15:09","page":1} 
[2026-08-31 01:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 01:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 01:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 01:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 01:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 01:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 01:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 01:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 01:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 00:45:05","window_to":"2026-08-31 01:45:05"} 
[2026-08-31 01:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 01:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 01:30:10","page":1} 
[2026-08-31 01:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 01:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 01:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 01:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 01:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 01:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 01:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 01:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 02:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 01:00:06","window_to":"2026-08-31 02:00:06"} 
[2026-08-31 02:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 01:00:06","window_to":"2026-08-31 02:00:06"} 
[2026-08-31 02:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-31 02:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-31 02:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 01:45:09","page":1} 
[2026-08-31 02:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 02:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 02:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 02:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-31 01:00:11","window_to":"2026-08-31 02:00:11"} 
[2026-08-31 02:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-31 02:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 02:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 02:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 02:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 02:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 02:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 02:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 01:15:05","window_to":"2026-08-31 02:15:05"} 
[2026-08-31 02:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 02:00:10","page":1} 
[2026-08-31 02:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 02:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 02:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 02:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 02:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 02:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 02:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 02:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 02:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 02:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 01:30:06","window_to":"2026-08-31 02:30:06"} 
[2026-08-31 02:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 02:15:09","page":1} 
[2026-08-31 02:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 02:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 02:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 02:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 02:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 02:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 02:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 02:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 02:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 01:45:05","window_to":"2026-08-31 02:45:05"} 
[2026-08-31 02:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 02:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 02:30:09","page":1} 
[2026-08-31 02:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 02:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 02:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 02:45:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 02:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 02:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 02:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 02:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 03:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 02:00:06","window_to":"2026-08-31 03:00:06"} 
[2026-08-31 03:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 02:00:06","window_to":"2026-08-31 03:00:06"} 
[2026-08-31 03:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-31 03:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-31 03:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 02:45:08","page":1} 
[2026-08-31 03:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 03:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 03:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 03:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-31 02:00:11","window_to":"2026-08-31 03:00:11"} 
[2026-08-31 03:00:11] local.INFO: TikTok webhook health check completed successfully  
[2026-08-31 03:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 03:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 03:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 03:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 03:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 03:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 02:15:05","window_to":"2026-08-31 03:15:05"} 
[2026-08-31 03:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 03:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 03:00:11","page":1} 
[2026-08-31 03:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 03:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 03:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 03:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 03:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 03:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 03:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 03:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 03:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 02:30:05","window_to":"2026-08-31 03:30:05"} 
[2026-08-31 03:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 03:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 03:15:08","page":1} 
[2026-08-31 03:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 03:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 03:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 03:30:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 03:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 03:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 03:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 03:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 03:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 02:45:06","window_to":"2026-08-31 03:45:06"} 
[2026-08-31 03:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 03:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 03:30:08","page":1} 
[2026-08-31 03:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 03:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 03:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 03:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 03:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 03:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 03:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 03:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 04:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 03:00:06","window_to":"2026-08-31 04:00:06"} 
[2026-08-31 04:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 03:00:06","window_to":"2026-08-31 04:00:06"} 
[2026-08-31 04:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-31 04:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-31 04:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 03:45:09","page":1} 
[2026-08-31 04:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 04:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 04:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 04:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-31 03:00:11","window_to":"2026-08-31 04:00:11"} 
[2026-08-31 04:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-31 04:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 04:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 04:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 04:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 04:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 04:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 04:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 03:15:05","window_to":"2026-08-31 04:15:05"} 
[2026-08-31 04:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 04:00:11","page":1} 
[2026-08-31 04:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 04:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 04:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 04:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 04:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 04:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 04:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 04:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 04:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 03:30:05","window_to":"2026-08-31 04:30:05"} 
[2026-08-31 04:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 04:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 04:15:08","page":1} 
[2026-08-31 04:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 04:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 04:30:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 04:30:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 04:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 04:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 04:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 04:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 04:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 03:45:05","window_to":"2026-08-31 04:45:06"} 
[2026-08-31 04:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 04:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 04:30:08","page":1} 
[2026-08-31 04:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 04:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 04:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 04:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 04:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 04:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 04:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 04:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 05:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 04:00:06","window_to":"2026-08-31 05:00:06"} 
[2026-08-31 05:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 04:00:06","window_to":"2026-08-31 05:00:06"} 
[2026-08-31 05:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-31 05:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-31 05:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 04:45:09","page":1} 
[2026-08-31 05:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 05:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 05:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 05:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-31 04:00:12","window_to":"2026-08-31 05:00:12"} 
[2026-08-31 05:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-31 05:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 05:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 05:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 05:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 05:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 05:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 04:15:05","window_to":"2026-08-31 05:15:05"} 
[2026-08-31 05:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 05:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 05:00:11","page":1} 
[2026-08-31 05:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 05:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 05:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 05:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 05:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 05:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 05:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 05:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 05:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 04:30:07","window_to":"2026-08-31 05:30:07"} 
[2026-08-31 05:30:08] local.INFO: Webhook retries processed successfully  
[2026-08-31 05:30:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 05:15:08","page":1} 
[2026-08-31 05:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 05:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 05:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 05:30:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 05:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 05:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 05:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 05:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 05:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 04:45:06","window_to":"2026-08-31 05:45:06"} 
[2026-08-31 05:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 05:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 05:30:11","page":1} 
[2026-08-31 05:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 05:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 05:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 05:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 05:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 05:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 05:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 05:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 06:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 05:00:06","window_to":"2026-08-31 06:00:07"} 
[2026-08-31 06:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 05:00:07","window_to":"2026-08-31 06:00:07"} 
[2026-08-31 06:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-31 06:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-31 06:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 05:45:09","page":1} 
[2026-08-31 06:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 06:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 06:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 06:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-31 05:00:12","window_to":"2026-08-31 06:00:12"} 
[2026-08-31 06:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-31 06:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 06:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 06:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 06:10:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 06:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 06:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 05:15:05","window_to":"2026-08-31 06:15:05"} 
[2026-08-31 06:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 06:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 06:00:11","page":1} 
[2026-08-31 06:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 06:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 06:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 06:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 06:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 06:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 06:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 06:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 06:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 05:30:06","window_to":"2026-08-31 06:30:06"} 
[2026-08-31 06:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 06:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 06:15:08","page":1} 
[2026-08-31 06:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 06:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 06:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 06:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 06:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 06:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 06:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 06:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 06:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 05:45:04","window_to":"2026-08-31 06:45:04"} 
[2026-08-31 06:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 06:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 06:30:10","page":1} 
[2026-08-31 06:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 06:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 06:45:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 06:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 06:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 06:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 06:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 06:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 07:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 06:00:07","window_to":"2026-08-31 07:00:07"} 
[2026-08-31 07:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 06:00:07","window_to":"2026-08-31 07:00:07"} 
[2026-08-31 07:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-31 07:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-31 07:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 06:45:08","page":1} 
[2026-08-31 07:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 07:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 07:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 07:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-31 06:00:12","window_to":"2026-08-31 07:00:12"} 
[2026-08-31 07:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-31 07:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 07:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 07:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 07:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 07:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 07:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 06:15:05","window_to":"2026-08-31 07:15:05"} 
[2026-08-31 07:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 07:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 07:00:12","page":1} 
[2026-08-31 07:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 07:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 07:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 07:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 07:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 07:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 07:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 07:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 07:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 06:30:05","window_to":"2026-08-31 07:30:05"} 
[2026-08-31 07:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 07:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 07:15:08","page":1} 
[2026-08-31 07:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 07:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 07:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 07:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 07:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 07:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 07:40:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 07:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 07:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 06:45:06","window_to":"2026-08-31 07:45:06"} 
[2026-08-31 07:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 07:45:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 07:30:09","page":1} 
[2026-08-31 07:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 07:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 07:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 07:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 07:50:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 07:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 07:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 07:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 08:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 07:00:06","window_to":"2026-08-31 08:00:06"} 
[2026-08-31 08:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 07:00:06","window_to":"2026-08-31 08:00:06"} 
[2026-08-31 08:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-31 08:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-31 08:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 07:45:10","page":1} 
[2026-08-31 08:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 08:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 08:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 08:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-31 07:00:12","window_to":"2026-08-31 08:00:12"} 
[2026-08-31 08:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-31 08:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 08:00:14] local.INFO: Student payment reminder notifications sent successfully  
[2026-08-31 08:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 08:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 08:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 08:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 08:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 07:15:05","window_to":"2026-08-31 08:15:05"} 
[2026-08-31 08:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 08:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 08:00:11","page":1} 
[2026-08-31 08:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 08:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 08:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 08:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 08:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 08:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 08:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 08:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 08:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 08:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 07:30:06","window_to":"2026-08-31 08:30:06"} 
[2026-08-31 08:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 08:15:08","page":1} 
[2026-08-31 08:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 08:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 08:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 08:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 08:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 08:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 08:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 08:40:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 08:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 07:45:05","window_to":"2026-08-31 08:45:05"} 
[2026-08-31 08:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 08:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 08:30:09","page":1} 
[2026-08-31 08:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 08:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 08:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 08:45:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 08:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 08:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 08:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 08:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 09:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 08:00:06","window_to":"2026-08-31 09:00:07"} 
[2026-08-31 09:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 08:00:07","window_to":"2026-08-31 09:00:07"} 
[2026-08-31 09:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-31 09:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-31 09:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 08:45:08","page":1} 
[2026-08-31 09:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 09:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 09:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 09:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-31 08:00:13","window_to":"2026-08-31 09:00:13"} 
[2026-08-31 09:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-31 09:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 09:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 09:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 09:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 09:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 09:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 08:15:06","window_to":"2026-08-31 09:15:06"} 
[2026-08-31 09:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 09:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 09:00:12","page":1} 
[2026-08-31 09:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 09:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 09:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 09:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 09:20:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 09:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 09:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 09:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 09:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 09:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 08:30:06","window_to":"2026-08-31 09:30:06"} 
[2026-08-31 09:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 09:15:09","page":1} 
[2026-08-31 09:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 09:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 09:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 09:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 09:35:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 09:35:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 09:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 09:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 09:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 08:45:06","window_to":"2026-08-31 09:45:06"} 
[2026-08-31 09:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 09:45:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 09:30:10","page":1} 
[2026-08-31 09:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 09:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 09:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 09:45:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 09:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 09:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 09:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 09:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 10:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 09:00:07","window_to":"2026-08-31 10:00:07"} 
[2026-08-31 10:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 09:00:07","window_to":"2026-08-31 10:00:07"} 
[2026-08-31 10:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-31 10:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-31 10:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 09:45:10","page":1} 
[2026-08-31 10:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 10:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 10:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 10:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-31 09:00:13","window_to":"2026-08-31 10:00:13"} 
[2026-08-31 10:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-31 10:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 10:05:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 10:05:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 10:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 10:10:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 10:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 09:15:06","window_to":"2026-08-31 10:15:06"} 
[2026-08-31 10:15:07] local.INFO: Webhook retries processed successfully  
[2026-08-31 10:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 10:00:12","page":1} 
[2026-08-31 10:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 10:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 10:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 10:15:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 10:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 10:20:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 10:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 10:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 10:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 09:30:06","window_to":"2026-08-31 10:30:06"} 
[2026-08-31 10:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 10:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 10:15:10","page":1} 
[2026-08-31 10:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 10:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 10:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 10:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 10:35:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 10:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 10:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 10:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 10:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 10:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 09:45:06","window_to":"2026-08-31 10:45:06"} 
[2026-08-31 10:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 10:30:10","page":1} 
[2026-08-31 10:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 10:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 10:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 10:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 10:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 10:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 10:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 10:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 11:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 10:00:07","window_to":"2026-08-31 11:00:08"} 
[2026-08-31 11:00:08] local.INFO: Webhook health check completed successfully  
[2026-08-31 11:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 10:00:08","window_to":"2026-08-31 11:00:08"} 
[2026-08-31 11:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-31 11:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 10:45:09","page":1} 
[2026-08-31 11:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 11:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 11:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 11:00:14] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-31 10:00:14","window_to":"2026-08-31 11:00:14"} 
[2026-08-31 11:00:14] local.INFO: TikTok webhook health check completed successfully  
[2026-08-31 11:00:15] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 11:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 11:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 11:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 11:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 11:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 10:15:05","window_to":"2026-08-31 11:15:05"} 
[2026-08-31 11:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 11:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 11:00:13","page":1} 
[2026-08-31 11:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 11:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 11:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 11:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 11:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 11:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 11:25:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 11:25:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 11:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 11:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 10:30:06","window_to":"2026-08-31 11:30:06"} 
[2026-08-31 11:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 11:15:09","page":1} 
[2026-08-31 11:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 11:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 11:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 11:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 11:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 11:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 11:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 11:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 11:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 10:45:05","window_to":"2026-08-31 11:45:05"} 
[2026-08-31 11:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 11:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 11:30:10","page":1} 
[2026-08-31 11:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 11:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 11:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 11:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 11:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 11:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 11:55:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 11:55:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 12:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 11:00:07","window_to":"2026-08-31 12:00:07"} 
[2026-08-31 12:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 11:00:07","window_to":"2026-08-31 12:00:07"} 
[2026-08-31 12:00:08] local.INFO: Webhook health check completed successfully  
[2026-08-31 12:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-31 12:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 11:45:09","page":1} 
[2026-08-31 12:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 12:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 12:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 12:00:14] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-31 11:00:14","window_to":"2026-08-31 12:00:14"} 
[2026-08-31 12:00:14] local.INFO: TikTok webhook health check completed successfully  
[2026-08-31 12:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 12:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 12:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 12:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 12:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 12:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 11:15:06","window_to":"2026-08-31 12:15:06"} 
[2026-08-31 12:15:07] local.INFO: Webhook retries processed successfully  
[2026-08-31 12:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 12:00:13","page":1} 
[2026-08-31 12:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 12:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 12:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 12:15:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 12:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 12:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 12:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 12:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 12:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-31 12:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 11:30:07","window_to":"2026-08-31 12:30:07"} 
[2026-08-31 12:30:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 12:15:10","page":1} 
[2026-08-31 12:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 12:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 12:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 12:30:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 12:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 12:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 12:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 12:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 12:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 11:45:05","window_to":"2026-08-31 12:45:05"} 
[2026-08-31 12:45:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 12:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 12:30:11","page":1} 
[2026-08-31 12:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 12:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 12:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 12:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 12:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 12:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 12:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 12:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 13:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 12:00:06","window_to":"2026-08-31 13:00:06"} 
[2026-08-31 13:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 12:00:07","window_to":"2026-08-31 13:00:07"} 
[2026-08-31 13:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-31 13:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-31 13:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 12:45:08","page":1} 
[2026-08-31 13:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 13:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 13:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 13:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-31 12:00:13","window_to":"2026-08-31 13:00:13"} 
[2026-08-31 13:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-31 13:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 13:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 13:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 13:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 13:10:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 13:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 12:15:05","window_to":"2026-08-31 13:15:05"} 
[2026-08-31 13:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 13:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 13:00:12","page":1} 
[2026-08-31 13:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 13:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 13:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 13:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 13:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 13:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 13:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 13:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 13:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 12:30:07","window_to":"2026-08-31 13:30:07"} 
[2026-08-31 13:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-31 13:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 13:15:09","page":1} 
[2026-08-31 13:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 13:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 13:30:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 13:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 13:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 13:35:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 13:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 13:40:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 13:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 13:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 12:45:06","window_to":"2026-08-31 13:45:06"} 
[2026-08-31 13:45:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 13:30:10","page":1} 
[2026-08-31 13:45:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 13:45:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 13:45:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 13:45:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 13:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 13:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 13:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 13:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 14:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 13:00:07","window_to":"2026-08-31 14:00:07"} 
[2026-08-31 14:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 13:00:08","window_to":"2026-08-31 14:00:08"} 
[2026-08-31 14:00:08] local.INFO: Webhook health check completed successfully  
[2026-08-31 14:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-31 14:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 13:45:10","page":1} 
[2026-08-31 14:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 14:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 14:00:13] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 14:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-31 13:00:13","window_to":"2026-08-31 14:00:13"} 
[2026-08-31 14:00:14] local.INFO: TikTok webhook health check completed successfully  
[2026-08-31 14:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 14:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 14:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 14:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 14:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 14:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 13:15:06","window_to":"2026-08-31 14:15:06"} 
[2026-08-31 14:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 14:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 14:00:13","page":1} 
[2026-08-31 14:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 14:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 14:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 14:15:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 14:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 14:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 14:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 14:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 14:30:07] local.INFO: Webhook retries processed successfully  
[2026-08-31 14:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 13:30:07","window_to":"2026-08-31 14:30:07"} 
[2026-08-31 14:30:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 14:15:10","page":1} 
[2026-08-31 14:30:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 14:30:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 14:30:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 14:30:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 14:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 14:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 14:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 14:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 14:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 14:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 13:45:06","window_to":"2026-08-31 14:45:06"} 
[2026-08-31 14:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 14:30:12","page":1} 
[2026-08-31 14:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 14:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 14:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 14:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 14:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 14:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 14:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 14:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 15:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 14:00:07","window_to":"2026-08-31 15:00:07"} 
[2026-08-31 15:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 14:00:07","window_to":"2026-08-31 15:00:07"} 
[2026-08-31 15:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-31 15:00:12] local.INFO: Webhook retries processed successfully  
[2026-08-31 15:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 14:45:09","page":1} 
[2026-08-31 15:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 15:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 15:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 15:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-31 14:00:13","window_to":"2026-08-31 15:00:13"} 
[2026-08-31 15:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-31 15:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 15:05:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 15:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 15:10:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 15:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 15:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 15:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 14:15:06","window_to":"2026-08-31 15:15:06"} 
[2026-08-31 15:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 15:00:12","page":1} 
[2026-08-31 15:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 15:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 15:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 15:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 15:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 15:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 15:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 15:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 15:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 15:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 14:30:06","window_to":"2026-08-31 15:30:06"} 
[2026-08-31 15:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 15:15:08","page":1} 
[2026-08-31 15:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 15:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 15:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 15:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 15:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 15:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 15:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 15:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 15:45:07] local.INFO: Webhook retries processed successfully  
[2026-08-31 15:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 14:45:07","window_to":"2026-08-31 15:45:07"} 
[2026-08-31 15:45:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 15:30:08","page":1} 
[2026-08-31 15:45:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 15:45:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 15:45:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 15:45:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 15:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 15:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 15:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 15:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 16:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 15:00:07","window_to":"2026-08-31 16:00:07"} 
[2026-08-31 16:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 15:00:07","window_to":"2026-08-31 16:00:07"} 
[2026-08-31 16:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-31 16:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-31 16:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 15:45:10","page":1} 
[2026-08-31 16:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 16:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 16:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 16:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-31 15:00:13","window_to":"2026-08-31 16:00:13"} 
[2026-08-31 16:00:13] local.INFO: TikTok webhook health check completed successfully  
[2026-08-31 16:00:14] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 16:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 16:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 16:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 16:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 16:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 15:15:05","window_to":"2026-08-31 16:15:05"} 
[2026-08-31 16:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 16:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 16:00:12","page":1} 
[2026-08-31 16:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 16:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 16:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 16:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 16:20:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 16:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 16:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 16:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 16:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 16:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 15:30:06","window_to":"2026-08-31 16:30:07"} 
[2026-08-31 16:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 16:15:09","page":1} 
[2026-08-31 16:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 16:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 16:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 16:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 16:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 16:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 16:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 16:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 16:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 15:45:06","window_to":"2026-08-31 16:45:06"} 
[2026-08-31 16:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 16:45:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 16:30:10","page":1} 
[2026-08-31 16:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 16:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 16:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 16:45:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 16:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 16:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 16:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 16:55:06] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 17:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 16:00:06","window_to":"2026-08-31 17:00:06"} 
[2026-08-31 17:00:06] local.INFO: Staff auto-checkout completed successfully  
[2026-08-31 17:00:10] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 16:00:10","window_to":"2026-08-31 17:00:10"} 
[2026-08-31 17:00:10] local.INFO: Webhook health check completed successfully  
[2026-08-31 17:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-31 17:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 16:45:10","page":1} 
[2026-08-31 17:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 17:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 17:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 17:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-31 16:00:12","window_to":"2026-08-31 17:00:12"} 
[2026-08-31 17:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-31 17:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 17:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 17:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 17:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 17:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 17:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 17:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 16:15:05","window_to":"2026-08-31 17:15:05"} 
[2026-08-31 17:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 17:00:11","page":1} 
[2026-08-31 17:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 17:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 17:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 17:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 17:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 17:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 17:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 17:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 17:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 17:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 16:30:06","window_to":"2026-08-31 17:30:06"} 
[2026-08-31 17:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 17:15:08","page":1} 
[2026-08-31 17:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 17:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 17:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 17:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 17:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 17:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 17:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 17:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 17:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 17:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 16:45:06","window_to":"2026-08-31 17:45:06"} 
[2026-08-31 17:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 17:30:09","page":1} 
[2026-08-31 17:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 17:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 17:45:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 17:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 17:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 17:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 17:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 17:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 18:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 17:00:06","window_to":"2026-08-31 18:00:07"} 
[2026-08-31 18:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 17:00:07","window_to":"2026-08-31 18:00:07"} 
[2026-08-31 18:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-31 18:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-31 18:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 17:45:09","page":1} 
[2026-08-31 18:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 18:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 18:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 18:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-31 17:00:12","window_to":"2026-08-31 18:00:12"} 
[2026-08-31 18:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-31 18:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 18:05:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 18:05:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 18:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 18:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 18:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 17:15:05","window_to":"2026-08-31 18:15:05"} 
[2026-08-31 18:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 18:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 18:00:11","page":1} 
[2026-08-31 18:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 18:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 18:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 18:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 18:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 18:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 18:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 18:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 18:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 17:30:05","window_to":"2026-08-31 18:30:05"} 
[2026-08-31 18:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 18:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 18:15:09","page":1} 
[2026-08-31 18:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 18:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 18:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 18:30:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 18:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 18:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 18:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 18:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 18:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 17:45:06","window_to":"2026-08-31 18:45:06"} 
[2026-08-31 18:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 18:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 18:30:08","page":1} 
[2026-08-31 18:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 18:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 18:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 18:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 18:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 18:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 18:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 18:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 19:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 18:00:07","window_to":"2026-08-31 19:00:07"} 
[2026-08-31 19:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 18:00:07","window_to":"2026-08-31 19:00:07"} 
[2026-08-31 19:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-31 19:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-31 19:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 18:45:09","page":1} 
[2026-08-31 19:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 19:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 19:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 19:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-31 18:00:12","window_to":"2026-08-31 19:00:12"} 
[2026-08-31 19:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-31 19:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 19:05:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 19:05:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 19:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 19:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 19:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 19:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 18:15:06","window_to":"2026-08-31 19:15:06"} 
[2026-08-31 19:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 19:00:12","page":1} 
[2026-08-31 19:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 19:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 19:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 19:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 19:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 19:20:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 19:21:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:21:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:21:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:21:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:22:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:22:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:22:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:23:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:23:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:23:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:24:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:24:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:24:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:25:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 19:25:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 19:25:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:25:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:25:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:26:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:26:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:26:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:27:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:27:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:27:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:28:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:28:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:28:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:29:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:29:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:29:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:30:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 18:30:05","window_to":"2026-08-31 19:30:05"} 
[2026-08-31 19:30:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 19:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 19:15:09","page":1} 
[2026-08-31 19:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 19:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 19:30:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 19:30:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 19:30:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:30:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:30:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:31:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:31:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:31:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:32:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:32:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:32:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:33:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:33:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:33:50] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:34:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:34:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:34:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:35:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 19:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 19:35:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:35:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:35:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:36:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:36:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:36:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:37:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:37:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:37:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:38:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:38:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:38:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 19:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 19:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 19:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 19:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 18:45:06","window_to":"2026-08-31 19:45:06"} 
[2026-08-31 19:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 19:30:08","page":1} 
[2026-08-31 19:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 19:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 19:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 19:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 19:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 19:50:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 19:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 19:55:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 20:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 19:00:07","window_to":"2026-08-31 20:00:07"} 
[2026-08-31 20:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 19:00:07","window_to":"2026-08-31 20:00:07"} 
[2026-08-31 20:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-31 20:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-31 20:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 19:45:09","page":1} 
[2026-08-31 20:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 20:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 20:00:12] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 20:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-31 19:00:12","window_to":"2026-08-31 20:00:12"} 
[2026-08-31 20:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-31 20:00:13] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 20:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 20:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 20:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 20:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 20:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 19:15:06","window_to":"2026-08-31 20:15:06"} 
[2026-08-31 20:15:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 20:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 20:00:11","page":1} 
[2026-08-31 20:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 20:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 20:15:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 20:15:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 20:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 20:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 20:25:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 20:25:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 20:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 19:30:06","window_to":"2026-08-31 20:30:06"} 
[2026-08-31 20:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 20:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 20:15:10","page":1} 
[2026-08-31 20:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 20:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 20:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 20:30:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 20:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 20:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 20:40:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 20:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 20:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 19:45:06","window_to":"2026-08-31 20:45:06"} 
[2026-08-31 20:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 20:45:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 20:30:10","page":1} 
[2026-08-31 20:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 20:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 20:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 20:45:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 20:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 20:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 20:55:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 20:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 21:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 20:00:06","window_to":"2026-08-31 21:00:06"} 
[2026-08-31 21:00:06] local.INFO: Webhook health check completed successfully  
[2026-08-31 21:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 20:00:06","window_to":"2026-08-31 21:00:06"} 
[2026-08-31 21:00:10] local.INFO: Webhook retries processed successfully  
[2026-08-31 21:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 20:45:10","page":1} 
[2026-08-31 21:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 21:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 21:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 21:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-31 20:00:11","window_to":"2026-08-31 21:00:11"} 
[2026-08-31 21:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-31 21:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 21:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 21:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 21:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 21:10:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 21:15:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 20:15:05","window_to":"2026-08-31 21:15:05"} 
[2026-08-31 21:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 21:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 21:00:11","page":1} 
[2026-08-31 21:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 21:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 21:15:08] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 21:15:09] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 21:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 21:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 21:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 21:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 21:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 20:30:06","window_to":"2026-08-31 21:30:06"} 
[2026-08-31 21:30:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 21:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 21:15:08","page":1} 
[2026-08-31 21:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 21:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 21:30:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 21:30:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 21:35:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 21:35:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 21:40:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 21:40:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 21:45:06] local.INFO: Webhook retries processed successfully  
[2026-08-31 21:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 20:45:06","window_to":"2026-08-31 21:45:06"} 
[2026-08-31 21:45:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 21:30:10","page":1} 
[2026-08-31 21:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 21:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 21:45:10] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 21:45:11] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 21:49:36] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 21:49:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 21:49:50] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 21:49:50] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 21:50:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 21:50:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 21:50:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 21:50:50] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 21:50:50] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 21:51:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 21:51:50] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 21:51:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 21:52:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 21:52:43] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 21:52:43] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 21:55:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 21:55:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 22:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 21:00:06","window_to":"2026-08-31 22:00:07"} 
[2026-08-31 22:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 21:00:07","window_to":"2026-08-31 22:00:07"} 
[2026-08-31 22:00:07] local.INFO: Webhook health check completed successfully  
[2026-08-31 22:00:11] local.INFO: Webhook retries processed successfully  
[2026-08-31 22:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 21:45:10","page":1} 
[2026-08-31 22:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 22:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 22:00:11] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 22:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-31 21:00:12","window_to":"2026-08-31 22:00:12"} 
[2026-08-31 22:00:12] local.INFO: TikTok webhook health check completed successfully  
[2026-08-31 22:00:12] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 22:05:04] local.INFO: Webhook retries processed successfully  
[2026-08-31 22:05:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 22:10:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 22:10:07] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 22:15:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 22:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 21:15:05","window_to":"2026-08-31 22:15:05"} 
[2026-08-31 22:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 22:00:11","page":1} 
[2026-08-31 22:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 22:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 22:15:09] local.INFO: TikTok lead sync completed successfully  
[2026-08-31 22:15:10] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 22:20:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 22:20:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 22:25:05] local.INFO: Webhook retries processed successfully  
[2026-08-31 22:25:08] local.INFO: TikTok webhook retries processed successfully  
[2026-08-31 22:28:06] local.WARNING: ScheduleMonitor could not record run {"command":"attendance:auto-checkout","error":"SQLSTATE[42P01]: Undefined table: 7 ERROR:  relation \"scheduled_task_runs\" does not exist
LINE 1: insert into \"scheduled_task_runs\" (\"command\", \"started_at\", ...
                    ^ (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: insert into \"scheduled_task_runs\" (\"command\", \"started_at\", \"finished_at\", \"duration_ms\", \"status\", \"output_excerpt\", \"updated_at\", \"created_at\") values (attendance:auto-checkout, 2026-08-31 22:28:02, 2026-08-31 22:28:06, 3888, success, ?, 2026-08-31 22:28:06, 2026-08-31 22:28:06) returning \"id\")"} 
[2026-08-31 22:28:06] local.WARNING: ScheduleMonitor could not record run {"command":"communications:process-scheduled","error":"SQLSTATE[42P01]: Undefined table: 7 ERROR:  relation \"scheduled_task_runs\" does not exist
LINE 1: insert into \"scheduled_task_runs\" (\"command\", \"started_at\", ...
                    ^ (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: insert into \"scheduled_task_runs\" (\"command\", \"started_at\", \"finished_at\", \"duration_ms\", \"status\", \"output_excerpt\", \"updated_at\", \"created_at\") values (communications:process-scheduled, 2026-08-31 22:28:02, 2026-08-31 22:28:06, 4009, success, Checking for scheduled communications that need processing...
No scheduled communications to process., 2026-08-31 22:28:06, 2026-08-31 22:28:06) returning \"id\")"} 
[2026-08-31 22:28:06] local.WARNING: ScheduleMonitor could not record run {"command":"hr:mark-absent-staff","error":"SQLSTATE[42P01]: Undefined table: 7 ERROR:  relation \"scheduled_task_runs\" does not exist
LINE 1: insert into \"scheduled_task_runs\" (\"command\", \"started_at\", ...
                    ^ (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: insert into \"scheduled_task_runs\" (\"command\", \"started_at\", \"finished_at\", \"duration_ms\", \"status\", \"output_excerpt\", \"updated_at\", \"created_at\") values (hr:mark-absent-staff, 2026-08-31 22:28:02, 2026-08-31 22:28:06, 4064, success, All active staff have an attendance record for today., 2026-08-31 22:28:06, 2026-08-31 22:28:06) returning \"id\")"} 
[2026-08-31 22:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 22:15:09","page":1} 
[2026-08-31 22:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 21:30:07","window_to":"2026-08-31 22:30:07"} 
[2026-08-31 22:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 22:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 22:30:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 22:30:59] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 22:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 21:45:07","window_to":"2026-08-31 22:45:07"} 
[2026-08-31 22:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 22:30:07","page":1} 
[2026-08-31 22:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 22:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 23:00:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 22:45:07","page":1} 
[2026-08-31 23:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 22:00:08","window_to":"2026-08-31 23:00:08"} 
[2026-08-31 23:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 23:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 23:00:14] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-31 22:00:14","window_to":"2026-08-31 23:00:14"} 
[2026-08-31 23:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 23:00:08","page":1} 
[2026-08-31 23:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 22:15:07","window_to":"2026-08-31 23:15:07"} 
[2026-08-31 23:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 23:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 23:30:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 22:30:08","window_to":"2026-08-31 23:30:08"} 
[2026-08-31 23:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 23:15:07","page":1} 
[2026-08-31 23:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 23:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 23:39:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 23:39:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 23:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 23:30:08","page":1} 
[2026-08-31 23:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 22:45:07","window_to":"2026-08-31 23:45:07"} 
[2026-08-31 23:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-08-31 23:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-08-31 23:52:04] local.WARNING: Permission route not configured; blocking request {"route":"POST /api/v1/admin/settings/clear-cache","user_id":2,"user_reg_no":"ADM009999","method":"POST","path":"/api/v1/admin/settings/clear-cache"} 
[2026-08-31 23:55:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-08-31 23:55:47] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-01 00:00:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-08-31 23:45:07","page":1} 
[2026-09-01 00:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 23:00:08","window_to":"2026-09-01 00:00:08"} 
[2026-09-01 00:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 00:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 00:00:14] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-08-31 23:00:14","window_to":"2026-09-01 00:00:14"} 
[2026-09-01 00:00:14] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_01_00_00_14.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-01 00:00:15] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_01_00_00_14.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-01 00:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 00:00:08","page":1} 
[2026-09-01 00:15:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 23:15:07","window_to":"2026-09-01 00:15:07"} 
[2026-09-01 00:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 00:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 00:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 00:15:07","page":1} 
[2026-09-01 00:30:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 23:30:08","window_to":"2026-09-01 00:30:08"} 
[2026-09-01 00:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 00:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 00:45:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-08-31 23:45:08","window_to":"2026-09-01 00:45:08"} 
[2026-09-01 00:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 00:30:08","page":1} 
[2026-09-01 00:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 00:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 01:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 00:00:08","window_to":"2026-09-01 01:00:08"} 
[2026-09-01 01:00:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 00:45:08","page":1} 
[2026-09-01 01:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 01:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 01:00:15] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-01 00:00:15","window_to":"2026-09-01 01:00:15"} 
[2026-09-01 01:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 01:00:08","page":1} 
[2026-09-01 01:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 00:15:07","window_to":"2026-09-01 01:15:07"} 
[2026-09-01 01:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 01:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 01:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 01:15:07","page":1} 
[2026-09-01 01:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 00:30:07","window_to":"2026-09-01 01:30:07"} 
[2026-09-01 01:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 01:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 01:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 01:30:07","page":1} 
[2026-09-01 01:45:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 00:45:08","window_to":"2026-09-01 01:45:08"} 
[2026-09-01 01:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 01:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 02:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 01:00:08","window_to":"2026-09-01 02:00:08"} 
[2026-09-01 02:00:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 01:45:08","page":1} 
[2026-09-01 02:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 02:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 02:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-01 01:00:13","window_to":"2026-09-01 02:00:13"} 
[2026-09-01 02:03:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-01 02:03:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-01 02:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 02:00:08","page":1} 
[2026-09-01 02:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 01:15:07","window_to":"2026-09-01 02:15:07"} 
[2026-09-01 02:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 02:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 02:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 02:15:07","page":1} 
[2026-09-01 02:30:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 01:30:07","window_to":"2026-09-01 02:30:07"} 
[2026-09-01 02:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 02:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 02:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 02:30:07","page":1} 
[2026-09-01 02:45:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 01:45:08","window_to":"2026-09-01 02:45:08"} 
[2026-09-01 02:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 02:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 03:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 02:45:08","page":1} 
[2026-09-01 03:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 02:00:08","window_to":"2026-09-01 03:00:08"} 
[2026-09-01 03:00:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 03:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 03:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-01 02:00:13","window_to":"2026-09-01 03:00:13"} 
[2026-09-01 03:03:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-01 03:03:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-01 03:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 02:15:07","window_to":"2026-09-01 03:15:07"} 
[2026-09-01 03:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 03:00:07","page":1} 
[2026-09-01 03:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 03:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 03:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 03:15:07","page":1} 
[2026-09-01 03:30:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 02:30:08","window_to":"2026-09-01 03:30:08"} 
[2026-09-01 03:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 03:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 03:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 02:45:07","window_to":"2026-09-01 03:45:07"} 
[2026-09-01 03:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 03:30:07","page":1} 
[2026-09-01 03:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 03:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 04:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 03:00:07","window_to":"2026-09-01 04:00:07"} 
[2026-09-01 04:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 03:45:07","page":1} 
[2026-09-01 04:00:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 04:00:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 04:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-01 03:00:12","window_to":"2026-09-01 04:00:12"} 
[2026-09-01 04:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 03:15:07","window_to":"2026-09-01 04:15:07"} 
[2026-09-01 04:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 04:00:07","page":1} 
[2026-09-01 04:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 04:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 04:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 04:15:07","page":1} 
[2026-09-01 04:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 03:30:07","window_to":"2026-09-01 04:30:07"} 
[2026-09-01 04:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 04:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 04:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 04:30:07","page":1} 
[2026-09-01 04:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 03:45:07","window_to":"2026-09-01 04:45:07"} 
[2026-09-01 04:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 04:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 05:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 04:45:07","page":1} 
[2026-09-01 05:00:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 04:00:09","window_to":"2026-09-01 05:00:09"} 
[2026-09-01 05:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 05:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 05:00:15] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-01 04:00:14","window_to":"2026-09-01 05:00:15"} 
[2026-09-01 05:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 04:15:06","window_to":"2026-09-01 05:15:06"} 
[2026-09-01 05:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 05:00:09","page":1} 
[2026-09-01 05:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 05:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 05:30:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 04:30:09","window_to":"2026-09-01 05:30:09"} 
[2026-09-01 05:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 05:15:07","page":1} 
[2026-09-01 05:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 05:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 05:31:06] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-01 05:31:06] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-01 05:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 04:45:07","window_to":"2026-09-01 05:45:07"} 
[2026-09-01 05:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 05:30:09","page":1} 
[2026-09-01 05:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 05:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 06:00:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 05:45:07","page":1} 
[2026-09-01 06:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 05:00:07","window_to":"2026-09-01 06:00:07"} 
[2026-09-01 06:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 06:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 06:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-01 05:00:12","window_to":"2026-09-01 06:00:12"} 
[2026-09-01 06:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 05:15:07","window_to":"2026-09-01 06:15:07"} 
[2026-09-01 06:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 06:00:08","page":1} 
[2026-09-01 06:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 06:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 06:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 06:15:07","page":1} 
[2026-09-01 06:30:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 05:30:08","window_to":"2026-09-01 06:30:08"} 
[2026-09-01 06:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 06:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 06:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 06:30:08","page":1} 
[2026-09-01 06:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 05:45:07","window_to":"2026-09-01 06:45:07"} 
[2026-09-01 06:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 06:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 07:00:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 06:45:07","page":1} 
[2026-09-01 07:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 06:00:07","window_to":"2026-09-01 07:00:07"} 
[2026-09-01 07:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 07:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 07:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-01 06:00:13","window_to":"2026-09-01 07:00:13"} 
[2026-09-01 07:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 06:15:07","window_to":"2026-09-01 07:15:07"} 
[2026-09-01 07:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 07:00:07","page":1} 
[2026-09-01 07:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 07:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 07:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 07:15:07","page":1} 
[2026-09-01 07:30:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 06:30:09","window_to":"2026-09-01 07:30:09"} 
[2026-09-01 07:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 07:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 07:45:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 06:45:07","window_to":"2026-09-01 07:45:07"} 
[2026-09-01 07:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 07:30:09","page":1} 
[2026-09-01 07:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 07:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 08:00:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 07:45:08","page":1} 
[2026-09-01 08:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 07:00:08","window_to":"2026-09-01 08:00:08"} 
[2026-09-01 08:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 08:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 08:00:15] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-01 07:00:15","window_to":"2026-09-01 08:00:15"} 
[2026-09-01 08:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 08:00:08","page":1} 
[2026-09-01 08:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 07:15:07","window_to":"2026-09-01 08:15:07"} 
[2026-09-01 08:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 08:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 08:30:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 07:30:08","window_to":"2026-09-01 08:30:08"} 
[2026-09-01 08:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 08:15:07","page":1} 
[2026-09-01 08:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 08:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 08:45:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 07:45:09","window_to":"2026-09-01 08:45:09"} 
[2026-09-01 08:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 08:30:09","page":1} 
[2026-09-01 08:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 08:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 09:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 08:45:09","page":1} 
[2026-09-01 09:00:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 08:00:10","window_to":"2026-09-01 09:00:11"} 
[2026-09-01 09:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 09:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 09:00:17] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-01 08:00:17","window_to":"2026-09-01 09:00:17"} 
[2026-09-01 09:15:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 08:15:09","window_to":"2026-09-01 09:15:09"} 
[2026-09-01 09:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 09:00:10","page":1} 
[2026-09-01 09:15:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 09:15:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 09:25:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-01 09:25:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-01 09:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 09:15:10","page":1} 
[2026-09-01 09:30:10] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 08:30:10","window_to":"2026-09-01 09:30:10"} 
[2026-09-01 09:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 09:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 09:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 08:45:06","window_to":"2026-09-01 09:45:07"} 
[2026-09-01 09:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 09:30:10","page":1} 
[2026-09-01 09:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 09:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 10:00:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 09:00:11","window_to":"2026-09-01 10:00:11"} 
[2026-09-01 10:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 09:45:07","page":1} 
[2026-09-01 10:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 10:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 10:00:18] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-01 09:00:18","window_to":"2026-09-01 10:00:18"} 
[2026-09-01 10:08:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-01 10:09:03] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-01 10:15:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 09:15:09","window_to":"2026-09-01 10:15:09"} 
[2026-09-01 10:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 10:00:11","page":1} 
[2026-09-01 10:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 10:15:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 10:25:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-01 10:25:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-01 10:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 10:15:09","page":1} 
[2026-09-01 10:30:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 09:30:07","window_to":"2026-09-01 10:30:07"} 
[2026-09-01 10:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 10:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 10:34:58] local.WARNING: Permission route not configured; blocking request {"route":"GET /api/v1/admin/donors","user_id":1,"user_reg_no":"ADM001001","method":"GET","path":"/api/v1/admin/donors"} 
[2026-09-01 10:35:12] local.WARNING: Permission route not configured; blocking request {"route":"GET /api/v1/admin/donors","user_id":1,"user_reg_no":"ADM001001","method":"GET","path":"/api/v1/admin/donors"} 
[2026-09-01 10:35:18] local.WARNING: Permission route not configured; blocking request {"route":"GET /api/v1/admin/donors","user_id":1,"user_reg_no":"ADM001001","method":"GET","path":"/api/v1/admin/donors"} 
[2026-09-01 10:38:22] local.WARNING: Permission route not configured; blocking request {"route":"GET /api/v1/admin/donors","user_id":1,"user_reg_no":"ADM001001","method":"GET","path":"/api/v1/admin/donors"} 
[2026-09-01 10:38:23] local.WARNING: Permission route not configured; blocking request {"route":"GET /api/v1/admin/donors","user_id":1,"user_reg_no":"ADM001001","method":"GET","path":"/api/v1/admin/donors"} 
[2026-09-01 10:45:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 09:45:09","window_to":"2026-09-01 10:45:09"} 
[2026-09-01 10:45:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 10:30:07","page":1} 
[2026-09-01 10:45:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 10:45:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 11:00:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 10:00:09","window_to":"2026-09-01 11:00:09"} 
[2026-09-01 11:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 10:45:09","page":1} 
[2026-09-01 11:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 11:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 11:00:15] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-01 10:00:15","window_to":"2026-09-01 11:00:15"} 
[2026-09-01 11:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 11:00:09","page":1} 
[2026-09-01 11:15:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 10:15:08","window_to":"2026-09-01 11:15:08"} 
[2026-09-01 11:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 11:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 11:30:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 10:30:08","window_to":"2026-09-01 11:30:08"} 
[2026-09-01 11:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 11:15:08","page":1} 
[2026-09-01 11:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 11:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 11:34:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-01 11:34:02] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-01 11:45:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 10:45:07","window_to":"2026-09-01 11:45:07"} 
[2026-09-01 11:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 11:30:08","page":1} 
[2026-09-01 11:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 11:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 12:00:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 11:00:11","window_to":"2026-09-01 12:00:11"} 
[2026-09-01 12:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 11:45:07","page":1} 
[2026-09-01 12:00:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 12:00:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 12:00:19] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_01_12_00_19.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-01 12:00:19] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-01 11:00:19","window_to":"2026-09-01 12:00:19"} 
[2026-09-01 12:00:21] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_01_12_00_19.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-01 12:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 12:00:12","page":1} 
[2026-09-01 12:15:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 11:15:08","window_to":"2026-09-01 12:15:08"} 
[2026-09-01 12:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 12:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 12:30:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 11:30:08","window_to":"2026-09-01 12:30:08"} 
[2026-09-01 12:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 12:15:08","page":1} 
[2026-09-01 12:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 12:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 12:45:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 11:45:08","window_to":"2026-09-01 12:45:08"} 
[2026-09-01 12:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 12:30:09","page":1} 
[2026-09-01 12:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 12:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 12:51:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-01 12:51:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-01 13:00:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 12:45:08","page":1} 
[2026-09-01 13:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 12:00:08","window_to":"2026-09-01 13:00:08"} 
[2026-09-01 13:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 13:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 13:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-01 12:00:13","window_to":"2026-09-01 13:00:13"} 
[2026-09-01 13:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 13:00:08","page":1} 
[2026-09-01 13:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 12:15:06","window_to":"2026-09-01 13:15:07"} 
[2026-09-01 13:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 13:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 13:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 13:15:07","page":1} 
[2026-09-01 13:30:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 12:30:09","window_to":"2026-09-01 13:30:09"} 
[2026-09-01 13:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 13:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 13:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 13:30:09","page":1} 
[2026-09-01 13:45:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 12:45:07","window_to":"2026-09-01 13:45:08"} 
[2026-09-01 13:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 13:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 13:51:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-01 13:51:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-01 14:00:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 13:00:09","window_to":"2026-09-01 14:00:09"} 
[2026-09-01 14:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 13:45:07","page":1} 
[2026-09-01 14:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 14:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 14:00:15] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-01 13:00:15","window_to":"2026-09-01 14:00:15"} 
[2026-09-01 14:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 14:00:09","page":1} 
[2026-09-01 14:15:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 13:15:09","window_to":"2026-09-01 14:15:09"} 
[2026-09-01 14:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 14:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 14:30:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 13:30:08","window_to":"2026-09-01 14:30:08"} 
[2026-09-01 14:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 14:15:09","page":1} 
[2026-09-01 14:30:13] local.ERROR: ❌ Exception while polling TikTok leads {"error":"cURL error 35: OpenSSL/3.0.13: error:0A000438:SSL routines::tlsv1 alert internal error (see https://curl.se/libcurl/c/libcurl-errors.html) for https://business-api.tiktok.com/open_api/v1.3/page/leads/get/?filtering=%7B%22start_time%22%3A%222026-09-01%2014%3A15%3A09%22%7D&page=1&page_size=100"} 
[2026-09-01 14:30:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 14:45:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 14:30:08","page":1} 
[2026-09-01 14:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 13:45:06","window_to":"2026-09-01 14:45:06"} 
[2026-09-01 14:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 14:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 15:00:10] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 14:00:09","window_to":"2026-09-01 15:00:09"} 
[2026-09-01 15:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 14:45:06","page":1} 
[2026-09-01 15:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 15:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 15:00:16] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-01 14:00:16","window_to":"2026-09-01 15:00:16"} 
[2026-09-01 15:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 15:00:10","page":1} 
[2026-09-01 15:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 14:15:07","window_to":"2026-09-01 15:15:07"} 
[2026-09-01 15:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 15:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 15:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 15:15:07","page":1} 
[2026-09-01 15:30:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 14:30:08","window_to":"2026-09-01 15:30:08"} 
[2026-09-01 15:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 15:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 15:31:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-01 15:31:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-01 15:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 14:45:07","window_to":"2026-09-01 15:45:07"} 
[2026-09-01 15:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 15:30:08","page":1} 
[2026-09-01 15:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 15:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 16:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 15:45:07","page":1} 
[2026-09-01 16:00:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 15:00:09","window_to":"2026-09-01 16:00:09"} 
[2026-09-01 16:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 16:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 16:00:15] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-01 15:00:15","window_to":"2026-09-01 16:00:15"} 
[2026-09-01 16:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 16:00:09","page":1} 
[2026-09-01 16:15:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 15:15:08","window_to":"2026-09-01 16:15:08"} 
[2026-09-01 16:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 16:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 16:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 16:15:08","page":1} 
[2026-09-01 16:30:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 15:30:08","window_to":"2026-09-01 16:30:08"} 
[2026-09-01 16:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 16:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 16:31:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-01 16:31:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-01 16:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 16:30:08","page":1} 
[2026-09-01 16:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 15:45:07","window_to":"2026-09-01 16:45:07"} 
[2026-09-01 16:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 16:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 17:00:10] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 16:00:10","window_to":"2026-09-01 17:00:10"} 
[2026-09-01 17:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 16:45:07","page":1} 
[2026-09-01 17:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 17:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 17:00:17] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-01 16:00:17","window_to":"2026-09-01 17:00:17"} 
[2026-09-01 17:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 17:00:10","page":1} 
[2026-09-01 17:15:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 16:15:09","window_to":"2026-09-01 17:15:09"} 
[2026-09-01 17:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 17:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 17:30:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 16:30:08","window_to":"2026-09-01 17:30:08"} 
[2026-09-01 17:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 17:15:09","page":1} 
[2026-09-01 17:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 17:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 17:45:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 16:45:08","window_to":"2026-09-01 17:45:08"} 
[2026-09-01 17:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 17:30:08","page":1} 
[2026-09-01 17:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 17:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 18:00:10] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 17:00:09","window_to":"2026-09-01 18:00:09"} 
[2026-09-01 18:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 17:45:08","page":1} 
[2026-09-01 18:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 18:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 18:00:15] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-01 17:00:15","window_to":"2026-09-01 18:00:15"} 
[2026-09-01 18:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 17:15:07","window_to":"2026-09-01 18:15:07"} 
[2026-09-01 18:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 18:00:10","page":1} 
[2026-09-01 18:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 18:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 18:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 18:15:07","page":1} 
[2026-09-01 18:30:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 17:30:07","window_to":"2026-09-01 18:30:07"} 
[2026-09-01 18:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 18:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 18:45:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 17:45:08","window_to":"2026-09-01 18:45:08"} 
[2026-09-01 18:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 18:30:07","page":1} 
[2026-09-01 18:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 18:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 18:52:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-01 18:52:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-01 19:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 18:45:08","page":1} 
[2026-09-01 19:00:10] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 18:00:10","window_to":"2026-09-01 19:00:10"} 
[2026-09-01 19:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 19:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 19:00:16] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-01 18:00:16","window_to":"2026-09-01 19:00:16"} 
[2026-09-01 19:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 19:00:10","page":1} 
[2026-09-01 19:15:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 18:15:07","window_to":"2026-09-01 19:15:08"} 
[2026-09-01 19:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 19:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 19:30:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 18:30:08","window_to":"2026-09-01 19:30:08"} 
[2026-09-01 19:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 19:15:08","page":1} 
[2026-09-01 19:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 19:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 19:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 19:30:08","page":1} 
[2026-09-01 19:45:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 18:45:07","window_to":"2026-09-01 19:45:08"} 
[2026-09-01 19:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 19:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 20:00:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 19:45:07","page":1} 
[2026-09-01 20:00:10] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 19:00:10","window_to":"2026-09-01 20:00:10"} 
[2026-09-01 20:00:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 20:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 20:00:16] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-01 19:00:16","window_to":"2026-09-01 20:00:16"} 
[2026-09-01 20:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 20:00:10","page":1} 
[2026-09-01 20:15:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 19:15:08","window_to":"2026-09-01 20:15:08"} 
[2026-09-01 20:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 20:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 20:30:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 19:30:09","window_to":"2026-09-01 20:30:09"} 
[2026-09-01 20:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 20:15:08","page":1} 
[2026-09-01 20:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 20:30:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 20:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 19:45:07","window_to":"2026-09-01 20:45:07"} 
[2026-09-01 20:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 20:30:10","page":1} 
[2026-09-01 20:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 20:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 21:00:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 20:45:07","page":1} 
[2026-09-01 21:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 20:00:08","window_to":"2026-09-01 21:00:08"} 
[2026-09-01 21:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 21:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 21:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-01 20:00:13","window_to":"2026-09-01 21:00:13"} 
[2026-09-01 21:04:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-01 21:04:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-01 21:06:09] local.WARNING: Permission route not configured; blocking request {"route":"GET /api/v1/admin/donors","user_id":1,"user_reg_no":"ADM001001","method":"GET","path":"/api/v1/admin/donors"} 
[2026-09-01 21:06:10] local.WARNING: Permission route not configured; blocking request {"route":"GET /api/v1/admin/donors","user_id":1,"user_reg_no":"ADM001001","method":"GET","path":"/api/v1/admin/donors"} 
[2026-09-01 21:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 20:15:07","window_to":"2026-09-01 21:15:07"} 
[2026-09-01 21:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 21:00:08","page":1} 
[2026-09-01 21:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 21:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 21:30:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 20:30:08","window_to":"2026-09-01 21:30:08"} 
[2026-09-01 21:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 21:15:07","page":1} 
[2026-09-01 21:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 21:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 21:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 20:45:07","window_to":"2026-09-01 21:45:07"} 
[2026-09-01 21:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 21:30:08","page":1} 
[2026-09-01 21:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 21:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 22:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 21:45:07","page":1} 
[2026-09-01 22:00:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 21:00:09","window_to":"2026-09-01 22:00:09"} 
[2026-09-01 22:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 22:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 22:00:14] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-01 21:00:14","window_to":"2026-09-01 22:00:14"} 
[2026-09-01 22:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 22:00:09","page":1} 
[2026-09-01 22:15:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 21:15:08","window_to":"2026-09-01 22:15:08"} 
[2026-09-01 22:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 22:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 22:30:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 21:30:08","window_to":"2026-09-01 22:30:08"} 
[2026-09-01 22:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 22:15:08","page":1} 
[2026-09-01 22:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 22:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 22:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 22:30:09","page":1} 
[2026-09-01 22:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 21:45:07","window_to":"2026-09-01 22:45:07"} 
[2026-09-01 22:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 22:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 23:00:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 22:00:08","window_to":"2026-09-01 23:00:08"} 
[2026-09-01 23:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 22:45:07","page":1} 
[2026-09-01 23:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 23:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 23:00:14] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-01 22:00:14","window_to":"2026-09-01 23:00:14"} 
[2026-09-01 23:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 22:15:06","window_to":"2026-09-01 23:15:06"} 
[2026-09-01 23:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 23:00:09","page":1} 
[2026-09-01 23:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 23:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 23:23:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-01 23:23:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-01 23:30:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 22:30:07","window_to":"2026-09-01 23:30:07"} 
[2026-09-01 23:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 23:15:06","page":1} 
[2026-09-01 23:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 23:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-01 23:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 22:45:07","window_to":"2026-09-01 23:45:07"} 
[2026-09-01 23:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 23:30:08","page":1} 
[2026-09-01 23:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-01 23:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 00:00:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-01 23:45:07","page":1} 
[2026-09-02 00:00:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 23:00:08","window_to":"2026-09-02 00:00:09"} 
[2026-09-02 00:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 00:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 00:00:15] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_02_00_00_15.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-02 00:00:15] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-01 23:00:15","window_to":"2026-09-02 00:00:15"} 
[2026-09-02 00:00:17] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_02_00_00_15.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-02 00:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 00:00:08","page":1} 
[2026-09-02 00:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 23:15:07","window_to":"2026-09-02 00:15:07"} 
[2026-09-02 00:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 00:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 00:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 00:15:06","page":1} 
[2026-09-02 00:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 23:30:07","window_to":"2026-09-02 00:30:07"} 
[2026-09-02 00:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 00:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 00:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-01 23:45:07","window_to":"2026-09-02 00:45:07"} 
[2026-09-02 00:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 00:30:07","page":1} 
[2026-09-02 00:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 00:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 01:00:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 00:45:07","page":1} 
[2026-09-02 01:00:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 00:00:09","window_to":"2026-09-02 01:00:09"} 
[2026-09-02 01:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 01:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 01:00:15] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-02 00:00:15","window_to":"2026-09-02 01:00:15"} 
[2026-09-02 01:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 01:00:08","page":1} 
[2026-09-02 01:15:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 00:15:08","window_to":"2026-09-02 01:15:08"} 
[2026-09-02 01:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 01:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 01:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 01:15:07","page":1} 
[2026-09-02 01:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 00:30:07","window_to":"2026-09-02 01:30:07"} 
[2026-09-02 01:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 01:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 01:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 01:30:07","page":1} 
[2026-09-02 01:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 00:45:07","window_to":"2026-09-02 01:45:07"} 
[2026-09-02 01:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 01:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 02:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 01:00:08","window_to":"2026-09-02 02:00:08"} 
[2026-09-02 02:00:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 01:45:07","page":1} 
[2026-09-02 02:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 02:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 02:00:14] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-02 01:00:14","window_to":"2026-09-02 02:00:14"} 
[2026-09-02 02:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 01:15:07","window_to":"2026-09-02 02:15:07"} 
[2026-09-02 02:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 02:00:08","page":1} 
[2026-09-02 02:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 02:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 02:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 01:30:07","window_to":"2026-09-02 02:30:07"} 
[2026-09-02 02:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 02:15:07","page":1} 
[2026-09-02 02:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 02:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 02:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 01:45:06","window_to":"2026-09-02 02:45:06"} 
[2026-09-02 02:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 02:30:07","page":1} 
[2026-09-02 02:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 02:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 03:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 02:00:08","window_to":"2026-09-02 03:00:08"} 
[2026-09-02 03:00:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 02:45:07","page":1} 
[2026-09-02 03:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 03:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 03:00:14] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-02 02:00:14","window_to":"2026-09-02 03:00:14"} 
[2026-09-02 03:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 03:00:08","page":1} 
[2026-09-02 03:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 02:15:07","window_to":"2026-09-02 03:15:07"} 
[2026-09-02 03:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 03:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 03:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 02:30:07","window_to":"2026-09-02 03:30:07"} 
[2026-09-02 03:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 03:15:07","page":1} 
[2026-09-02 03:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 03:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 03:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 03:30:07","page":1} 
[2026-09-02 03:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 02:45:07","window_to":"2026-09-02 03:45:07"} 
[2026-09-02 03:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 03:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 04:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 03:45:07","page":1} 
[2026-09-02 04:00:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 03:00:09","window_to":"2026-09-02 04:00:09"} 
[2026-09-02 04:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 04:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 04:00:14] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-02 03:00:14","window_to":"2026-09-02 04:00:14"} 
[2026-09-02 04:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 04:00:09","page":1} 
[2026-09-02 04:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 03:15:07","window_to":"2026-09-02 04:15:07"} 
[2026-09-02 04:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 04:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 04:30:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 03:30:07","window_to":"2026-09-02 04:30:08"} 
[2026-09-02 04:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 04:15:07","page":1} 
[2026-09-02 04:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 04:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 04:45:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 03:45:08","window_to":"2026-09-02 04:45:08"} 
[2026-09-02 04:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 04:30:08","page":1} 
[2026-09-02 04:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 04:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 05:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 04:00:08","window_to":"2026-09-02 05:00:08"} 
[2026-09-02 05:00:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 04:45:08","page":1} 
[2026-09-02 05:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 05:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 05:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-02 04:00:13","window_to":"2026-09-02 05:00:13"} 
[2026-09-02 05:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 05:00:08","page":1} 
[2026-09-02 05:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 04:15:07","window_to":"2026-09-02 05:15:07"} 
[2026-09-02 05:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 05:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 05:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 05:15:07","page":1} 
[2026-09-02 05:30:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 04:30:09","window_to":"2026-09-02 05:30:09"} 
[2026-09-02 05:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 05:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 05:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 04:45:07","window_to":"2026-09-02 05:45:07"} 
[2026-09-02 05:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 05:30:09","page":1} 
[2026-09-02 05:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 05:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 06:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 05:00:07","window_to":"2026-09-02 06:00:07"} 
[2026-09-02 06:00:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 05:45:07","page":1} 
[2026-09-02 06:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 06:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 06:00:14] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-02 05:00:14","window_to":"2026-09-02 06:00:14"} 
[2026-09-02 06:08:52] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cache" where "key" in (ims_academy_cache_illuminate:queue:restart)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_illuminate:queue:restart)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(999): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(978): Illuminate\\Database\\Connection->tryAgainIfCausedByLostConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(796): Illuminate\\Database\\Connection->handleQueryException()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3505): Illuminate\\Database\\Connection->select()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3490): Illuminate\\Database\\Query\\Builder->runSelect()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4080): Illuminate\\Database\\Query\\Builder->Illuminate\\Database\\Query\\{closure}()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3489): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(800): Illuminate\\Cache\\Repository->get()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(785): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(350): Illuminate\\Queue\\Worker->queueShouldRestart()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(230): Illuminate\\Queue\\Worker->stopIfNecessary()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(149): Illuminate\\Queue\\Worker->daemon()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(132): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#26 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#27 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#30 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#31 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:66)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(66): PDO->__construct()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->Illuminate\\Database\\Connectors\\{closure}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->Illuminate\\Database\\{closure}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(999): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(978): Illuminate\\Database\\Connection->tryAgainIfCausedByLostConnection()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(796): Illuminate\\Database\\Connection->handleQueryException()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3505): Illuminate\\Database\\Connection->select()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3490): Illuminate\\Database\\Query\\Builder->runSelect()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4080): Illuminate\\Database\\Query\\Builder->Illuminate\\Database\\Query\\{closure}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3489): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(800): Illuminate\\Cache\\Repository->get()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(785): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(350): Illuminate\\Queue\\Worker->queueShouldRestart()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(230): Illuminate\\Queue\\Worker->stopIfNecessary()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(149): Illuminate\\Queue\\Worker->daemon()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(132): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#35 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#36 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#37 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#40 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#41 {main}
"} 
[2026-09-02 06:15:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 05:15:08","window_to":"2026-09-02 06:15:08"} 
[2026-09-02 06:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 06:00:08","page":1} 
[2026-09-02 06:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 06:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 06:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 06:15:08","page":1} 
[2026-09-02 06:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 05:30:07","window_to":"2026-09-02 06:30:07"} 
[2026-09-02 06:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 06:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 06:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 06:30:07","page":1} 
[2026-09-02 06:45:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 05:45:08","window_to":"2026-09-02 06:45:08"} 
[2026-09-02 06:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 06:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 07:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 06:00:08","window_to":"2026-09-02 07:00:08"} 
[2026-09-02 07:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 06:45:08","page":1} 
[2026-09-02 07:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 07:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 07:00:14] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-02 06:00:14","window_to":"2026-09-02 07:00:14"} 
[2026-09-02 07:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 07:00:08","page":1} 
[2026-09-02 07:15:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 06:15:08","window_to":"2026-09-02 07:15:08"} 
[2026-09-02 07:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 07:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 07:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 07:15:08","page":1} 
[2026-09-02 07:30:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 06:30:07","window_to":"2026-09-02 07:30:08"} 
[2026-09-02 07:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 07:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 07:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 07:30:07","page":1} 
[2026-09-02 07:45:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 06:45:07","window_to":"2026-09-02 07:45:08"} 
[2026-09-02 07:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 07:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 08:00:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 07:45:07","page":1} 
[2026-09-02 08:00:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 07:00:08","window_to":"2026-09-02 08:00:08"} 
[2026-09-02 08:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 08:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 08:00:15] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-02 07:00:15","window_to":"2026-09-02 08:00:15"} 
[2026-09-02 08:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 08:00:08","page":1} 
[2026-09-02 08:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 07:15:07","window_to":"2026-09-02 08:15:07"} 
[2026-09-02 08:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 08:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 08:30:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 07:30:07","window_to":"2026-09-02 08:30:07"} 
[2026-09-02 08:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 08:15:07","page":1} 
[2026-09-02 08:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 08:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 08:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 07:45:07","window_to":"2026-09-02 08:45:07"} 
[2026-09-02 08:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 08:30:08","page":1} 
[2026-09-02 08:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 08:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 09:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 08:45:07","page":1} 
[2026-09-02 09:00:10] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 08:00:09","window_to":"2026-09-02 09:00:09"} 
[2026-09-02 09:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 09:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 09:00:16] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-02 08:00:15","window_to":"2026-09-02 09:00:16"} 
[2026-09-02 09:15:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 08:15:07","window_to":"2026-09-02 09:15:07"} 
[2026-09-02 09:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 09:00:09","page":1} 
[2026-09-02 09:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 09:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 09:30:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 08:30:08","window_to":"2026-09-02 09:30:08"} 
[2026-09-02 09:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 09:15:08","page":1} 
[2026-09-02 09:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 09:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 09:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 08:45:07","window_to":"2026-09-02 09:45:07"} 
[2026-09-02 09:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 09:30:08","page":1} 
[2026-09-02 09:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 09:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 10:00:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 09:00:08","window_to":"2026-09-02 10:00:08"} 
[2026-09-02 10:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 09:45:07","page":1} 
[2026-09-02 10:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 10:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 10:00:14] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-02 09:00:14","window_to":"2026-09-02 10:00:14"} 
[2026-09-02 10:15:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 09:15:08","window_to":"2026-09-02 10:15:08"} 
[2026-09-02 10:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 10:00:09","page":1} 
[2026-09-02 10:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 10:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 10:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 09:30:07","window_to":"2026-09-02 10:30:07"} 
[2026-09-02 10:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 10:15:08","page":1} 
[2026-09-02 10:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 10:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 10:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 10:30:07","page":1} 
[2026-09-02 10:45:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 09:45:08","window_to":"2026-09-02 10:45:08"} 
[2026-09-02 10:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 10:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 11:00:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 10:45:08","page":1} 
[2026-09-02 11:00:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 10:00:09","window_to":"2026-09-02 11:00:09"} 
[2026-09-02 11:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 11:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 11:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-02 10:00:13","window_to":"2026-09-02 11:00:13"} 
[2026-09-02 11:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 10:15:07","window_to":"2026-09-02 11:15:07"} 
[2026-09-02 11:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 11:00:08","page":1} 
[2026-09-02 11:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 11:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 11:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 11:15:07","page":1} 
[2026-09-02 11:30:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 10:30:08","window_to":"2026-09-02 11:30:09"} 
[2026-09-02 11:30:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 11:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 11:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 11:30:09","page":1} 
[2026-09-02 11:45:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 10:45:07","window_to":"2026-09-02 11:45:08"} 
[2026-09-02 11:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 11:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 12:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 11:00:08","window_to":"2026-09-02 12:00:08"} 
[2026-09-02 12:00:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 11:45:07","page":1} 
[2026-09-02 12:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 12:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 12:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-02 11:00:13","window_to":"2026-09-02 12:00:13"} 
[2026-09-02 12:00:13] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_02_12_00_13.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-02 12:00:14] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_02_12_00_13.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-02 12:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 12:00:08","page":1} 
[2026-09-02 12:15:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 11:15:08","window_to":"2026-09-02 12:15:08"} 
[2026-09-02 12:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 12:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 12:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 12:15:08","page":1} 
[2026-09-02 12:30:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 11:30:09","window_to":"2026-09-02 12:30:09"} 
[2026-09-02 12:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 12:30:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 12:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 11:45:07","window_to":"2026-09-02 12:45:07"} 
[2026-09-02 12:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 12:30:09","page":1} 
[2026-09-02 12:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 12:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 13:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 12:45:07","page":1} 
[2026-09-02 13:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 12:00:07","window_to":"2026-09-02 13:00:07"} 
[2026-09-02 13:00:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 13:00:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 13:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-02 12:00:12","window_to":"2026-09-02 13:00:12"} 
[2026-09-02 13:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 13:00:07","page":1} 
[2026-09-02 13:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 12:15:06","window_to":"2026-09-02 13:15:07"} 
[2026-09-02 13:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 13:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 13:30:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 13:15:07","page":1} 
[2026-09-02 13:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 12:30:07","window_to":"2026-09-02 13:30:07"} 
[2026-09-02 13:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 13:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 13:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 13:30:06","page":1} 
[2026-09-02 13:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 12:45:07","window_to":"2026-09-02 13:45:07"} 
[2026-09-02 13:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 13:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 14:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 13:45:07","page":1} 
[2026-09-02 14:00:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 13:00:09","window_to":"2026-09-02 14:00:09"} 
[2026-09-02 14:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 14:00:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 14:00:15] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-02 13:00:15","window_to":"2026-09-02 14:00:15"} 
[2026-09-02 14:15:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 14:00:09","page":1} 
[2026-09-02 14:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 13:15:06","window_to":"2026-09-02 14:15:06"} 
[2026-09-02 14:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 14:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 14:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 14:15:06","page":1} 
[2026-09-02 14:30:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 13:30:08","window_to":"2026-09-02 14:30:08"} 
[2026-09-02 14:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 14:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 14:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 14:30:08","page":1} 
[2026-09-02 14:45:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 13:45:08","window_to":"2026-09-02 14:45:08"} 
[2026-09-02 14:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 14:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 15:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 14:00:08","window_to":"2026-09-02 15:00:08"} 
[2026-09-02 15:00:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 14:45:07","page":1} 
[2026-09-02 15:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 15:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 15:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-02 14:00:13","window_to":"2026-09-02 15:00:13"} 
[2026-09-02 15:15:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 15:00:08","page":1} 
[2026-09-02 15:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 14:15:06","window_to":"2026-09-02 15:15:06"} 
[2026-09-02 15:15:06] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 15:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 15:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 14:30:07","window_to":"2026-09-02 15:30:07"} 
[2026-09-02 15:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 15:15:06","page":1} 
[2026-09-02 15:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 15:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 15:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 15:30:07","page":1} 
[2026-09-02 15:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 14:45:07","window_to":"2026-09-02 15:45:07"} 
[2026-09-02 15:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 15:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 16:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 15:00:08","window_to":"2026-09-02 16:00:08"} 
[2026-09-02 16:00:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 15:45:07","page":1} 
[2026-09-02 16:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 16:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 16:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-02 15:00:13","window_to":"2026-09-02 16:00:13"} 
[2026-09-02 16:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 16:00:08","page":1} 
[2026-09-02 16:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 15:15:07","window_to":"2026-09-02 16:15:07"} 
[2026-09-02 16:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 16:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 16:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 16:15:07","page":1} 
[2026-09-02 16:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 15:30:07","window_to":"2026-09-02 16:30:07"} 
[2026-09-02 16:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 16:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 16:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 16:30:07","page":1} 
[2026-09-02 16:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 15:45:07","window_to":"2026-09-02 16:45:07"} 
[2026-09-02 16:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 16:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 17:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 16:00:07","window_to":"2026-09-02 17:00:07"} 
[2026-09-02 17:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 16:45:07","page":1} 
[2026-09-02 17:00:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 17:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 17:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-02 16:00:12","window_to":"2026-09-02 17:00:12"} 
[2026-09-02 17:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 16:15:07","window_to":"2026-09-02 17:15:07"} 
[2026-09-02 17:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 17:00:07","page":1} 
[2026-09-02 17:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 17:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 17:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 17:15:07","page":1} 
[2026-09-02 17:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 16:30:07","window_to":"2026-09-02 17:30:07"} 
[2026-09-02 17:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 17:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 17:45:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 16:45:07","window_to":"2026-09-02 17:45:08"} 
[2026-09-02 17:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 17:30:07","page":1} 
[2026-09-02 17:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 17:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 18:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 17:00:08","window_to":"2026-09-02 18:00:08"} 
[2026-09-02 18:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 17:45:08","page":1} 
[2026-09-02 18:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 18:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 18:00:14] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-02 17:00:14","window_to":"2026-09-02 18:00:14"} 
[2026-09-02 18:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 17:15:07","window_to":"2026-09-02 18:15:07"} 
[2026-09-02 18:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 18:00:08","page":1} 
[2026-09-02 18:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 18:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 18:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 17:30:07","window_to":"2026-09-02 18:30:07"} 
[2026-09-02 18:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 18:15:07","page":1} 
[2026-09-02 18:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 18:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 18:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 17:45:07","window_to":"2026-09-02 18:45:07"} 
[2026-09-02 18:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 18:30:07","page":1} 
[2026-09-02 18:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 18:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 19:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 18:45:07","page":1} 
[2026-09-02 19:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 18:00:07","window_to":"2026-09-02 19:00:07"} 
[2026-09-02 19:00:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 19:00:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 19:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-02 18:00:12","window_to":"2026-09-02 19:00:12"} 
[2026-09-02 19:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 18:15:07","window_to":"2026-09-02 19:15:07"} 
[2026-09-02 19:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 19:00:07","page":1} 
[2026-09-02 19:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 19:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 19:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 19:15:08","page":1} 
[2026-09-02 19:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 18:30:07","window_to":"2026-09-02 19:30:07"} 
[2026-09-02 19:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 19:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 19:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 19:30:07","page":1} 
[2026-09-02 19:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 18:45:06","window_to":"2026-09-02 19:45:07"} 
[2026-09-02 19:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 19:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 20:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 19:45:06","page":1} 
[2026-09-02 20:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 19:00:07","window_to":"2026-09-02 20:00:07"} 
[2026-09-02 20:00:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 20:00:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 20:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-02 19:00:12","window_to":"2026-09-02 20:00:12"} 
[2026-09-02 20:15:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 20:00:07","page":1} 
[2026-09-02 20:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 19:15:06","window_to":"2026-09-02 20:15:06"} 
[2026-09-02 20:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 20:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 20:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 20:15:06","page":1} 
[2026-09-02 20:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 19:30:07","window_to":"2026-09-02 20:30:07"} 
[2026-09-02 20:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 20:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 20:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 20:30:07","page":1} 
[2026-09-02 20:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 19:45:07","window_to":"2026-09-02 20:45:07"} 
[2026-09-02 20:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 20:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 21:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 20:45:07","page":1} 
[2026-09-02 21:00:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 20:00:09","window_to":"2026-09-02 21:00:09"} 
[2026-09-02 21:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 21:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 21:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-02 20:00:13","window_to":"2026-09-02 21:00:13"} 
[2026-09-02 21:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 21:00:08","page":1} 
[2026-09-02 21:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 20:15:07","window_to":"2026-09-02 21:15:07"} 
[2026-09-02 21:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 21:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 21:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 21:15:07","page":1} 
[2026-09-02 21:30:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 20:30:08","window_to":"2026-09-02 21:30:08"} 
[2026-09-02 21:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 21:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 21:45:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 20:45:07","window_to":"2026-09-02 21:45:07"} 
[2026-09-02 21:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 21:30:07","page":1} 
[2026-09-02 21:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 21:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 22:00:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 21:45:08","page":1} 
[2026-09-02 22:00:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 21:00:08","window_to":"2026-09-02 22:00:08"} 
[2026-09-02 22:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 22:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 22:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-02 21:00:13","window_to":"2026-09-02 22:00:13"} 
[2026-09-02 22:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 22:00:08","page":1} 
[2026-09-02 22:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 21:15:07","window_to":"2026-09-02 22:15:07"} 
[2026-09-02 22:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 22:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 22:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 21:30:07","window_to":"2026-09-02 22:30:07"} 
[2026-09-02 22:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 22:15:07","page":1} 
[2026-09-02 22:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 22:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 22:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 22:30:07","page":1} 
[2026-09-02 22:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 21:45:06","window_to":"2026-09-02 22:45:06"} 
[2026-09-02 22:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 22:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 23:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 22:45:06","page":1} 
[2026-09-02 23:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 22:00:08","window_to":"2026-09-02 23:00:08"} 
[2026-09-02 23:00:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 23:00:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 23:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-02 22:00:12","window_to":"2026-09-02 23:00:12"} 
[2026-09-02 23:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 22:15:06","window_to":"2026-09-02 23:15:06"} 
[2026-09-02 23:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 23:00:07","page":1} 
[2026-09-02 23:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 23:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 23:30:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 22:30:08","window_to":"2026-09-02 23:30:08"} 
[2026-09-02 23:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 23:15:07","page":1} 
[2026-09-02 23:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 23:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-02 23:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 23:30:08","page":1} 
[2026-09-02 23:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 22:45:07","window_to":"2026-09-02 23:45:07"} 
[2026-09-02 23:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-02 23:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 00:00:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-02 23:45:07","page":1} 
[2026-09-03 00:00:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 23:00:09","window_to":"2026-09-03 00:00:09"} 
[2026-09-03 00:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 00:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 00:00:14] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_03_00_00_14.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-03 00:00:15] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-02 23:00:14","window_to":"2026-09-03 00:00:14"} 
[2026-09-03 00:00:16] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_03_00_00_14.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-03 00:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 00:00:08","page":1} 
[2026-09-03 00:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 23:15:07","window_to":"2026-09-03 00:15:07"} 
[2026-09-03 00:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 00:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 00:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 00:15:07","page":1} 
[2026-09-03 00:30:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 23:30:07","window_to":"2026-09-03 00:30:08"} 
[2026-09-03 00:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 00:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 00:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-02 23:45:06","window_to":"2026-09-03 00:45:06"} 
[2026-09-03 00:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 00:30:07","page":1} 
[2026-09-03 00:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 00:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 01:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 00:00:07","window_to":"2026-09-03 01:00:07"} 
[2026-09-03 01:00:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 00:45:07","page":1} 
[2026-09-03 01:00:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 01:00:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 01:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-03 00:00:13","window_to":"2026-09-03 01:00:13"} 
[2026-09-03 01:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 01:00:08","page":1} 
[2026-09-03 01:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 00:15:07","window_to":"2026-09-03 01:15:07"} 
[2026-09-03 01:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 01:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 01:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 00:30:07","window_to":"2026-09-03 01:30:07"} 
[2026-09-03 01:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 01:15:07","page":1} 
[2026-09-03 01:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 01:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 01:45:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 01:30:07","page":1} 
[2026-09-03 01:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 00:45:06","window_to":"2026-09-03 01:45:06"} 
[2026-09-03 01:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 01:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 02:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 01:45:06","page":1} 
[2026-09-03 02:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 01:00:07","window_to":"2026-09-03 02:00:07"} 
[2026-09-03 02:00:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 02:00:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 02:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-03 01:00:11","window_to":"2026-09-03 02:00:11"} 
[2026-09-03 02:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 01:15:06","window_to":"2026-09-03 02:15:06"} 
[2026-09-03 02:15:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 02:00:07","page":1} 
[2026-09-03 02:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 02:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 02:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 01:30:06","window_to":"2026-09-03 02:30:06"} 
[2026-09-03 02:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 02:15:06","page":1} 
[2026-09-03 02:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 02:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 02:45:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 02:30:07","page":1} 
[2026-09-03 02:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 01:45:06","window_to":"2026-09-03 02:45:06"} 
[2026-09-03 02:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 02:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 03:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 02:45:06","page":1} 
[2026-09-03 03:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 02:00:07","window_to":"2026-09-03 03:00:07"} 
[2026-09-03 03:00:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 03:00:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 03:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-03 02:00:11","window_to":"2026-09-03 03:00:11"} 
[2026-09-03 03:15:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 03:00:07","page":1} 
[2026-09-03 03:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 02:15:06","window_to":"2026-09-03 03:15:07"} 
[2026-09-03 03:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 03:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 03:30:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 03:15:06","page":1} 
[2026-09-03 03:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 02:30:06","window_to":"2026-09-03 03:30:06"} 
[2026-09-03 03:30:06] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 03:30:06] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 03:45:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 03:30:06","page":1} 
[2026-09-03 03:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 02:45:06","window_to":"2026-09-03 03:45:06"} 
[2026-09-03 03:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 03:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 04:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 03:45:06","page":1} 
[2026-09-03 04:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 03:00:07","window_to":"2026-09-03 04:00:07"} 
[2026-09-03 04:00:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 04:00:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 04:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-03 03:00:12","window_to":"2026-09-03 04:00:12"} 
[2026-09-03 04:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 03:15:06","window_to":"2026-09-03 04:15:06"} 
[2026-09-03 04:15:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 04:00:07","page":1} 
[2026-09-03 04:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 04:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 04:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 03:30:06","window_to":"2026-09-03 04:30:06"} 
[2026-09-03 04:30:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 04:15:06","page":1} 
[2026-09-03 04:30:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 04:30:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 04:45:05] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 03:45:05","window_to":"2026-09-03 04:45:05"} 
[2026-09-03 04:45:05] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 04:30:06","page":1} 
[2026-09-03 04:45:06] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 04:45:06] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 05:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 04:00:06","window_to":"2026-09-03 05:00:06"} 
[2026-09-03 05:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 04:45:05","page":1} 
[2026-09-03 05:00:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 05:00:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 05:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-03 04:00:11","window_to":"2026-09-03 05:00:11"} 
[2026-09-03 05:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 04:15:06","window_to":"2026-09-03 05:15:06"} 
[2026-09-03 05:15:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 05:00:07","page":1} 
[2026-09-03 05:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 05:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 05:30:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 04:30:08","window_to":"2026-09-03 05:30:08"} 
[2026-09-03 05:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 05:15:06","page":1} 
[2026-09-03 05:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 05:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 05:45:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 05:30:08","page":1} 
[2026-09-03 05:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 04:45:06","window_to":"2026-09-03 05:45:06"} 
[2026-09-03 05:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 05:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 06:00:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 05:00:06","window_to":"2026-09-03 06:00:06"} 
[2026-09-03 06:00:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 05:45:06","page":1} 
[2026-09-03 06:00:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 06:00:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 06:00:10] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-03 05:00:10","window_to":"2026-09-03 06:00:10"} 
[2026-09-03 06:15:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 06:00:06","page":1} 
[2026-09-03 06:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 05:15:06","window_to":"2026-09-03 06:15:06"} 
[2026-09-03 06:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 06:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 06:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 06:15:06","page":1} 
[2026-09-03 06:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 05:30:07","window_to":"2026-09-03 06:30:07"} 
[2026-09-03 06:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 06:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 06:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 05:45:06","window_to":"2026-09-03 06:45:06"} 
[2026-09-03 06:45:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 06:30:07","page":1} 
[2026-09-03 06:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 06:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 07:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 06:00:07","window_to":"2026-09-03 07:00:07"} 
[2026-09-03 07:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 06:45:06","page":1} 
[2026-09-03 07:00:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 07:00:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 07:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-03 06:00:11","window_to":"2026-09-03 07:00:11"} 
[2026-09-03 07:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 06:15:06","window_to":"2026-09-03 07:15:06"} 
[2026-09-03 07:15:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 07:00:07","page":1} 
[2026-09-03 07:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 07:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 07:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 07:15:06","page":1} 
[2026-09-03 07:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 06:30:07","window_to":"2026-09-03 07:30:07"} 
[2026-09-03 07:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 07:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 07:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 06:45:07","window_to":"2026-09-03 07:45:07"} 
[2026-09-03 07:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 07:30:07","page":1} 
[2026-09-03 07:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 07:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 08:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 07:45:07","page":1} 
[2026-09-03 08:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 07:00:07","window_to":"2026-09-03 08:00:07"} 
[2026-09-03 08:00:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 08:00:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 08:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-03 07:00:12","window_to":"2026-09-03 08:00:12"} 
[2026-09-03 08:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 07:15:06","window_to":"2026-09-03 08:15:06"} 
[2026-09-03 08:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 08:00:07","page":1} 
[2026-09-03 08:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 08:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 08:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 07:30:06","window_to":"2026-09-03 08:30:06"} 
[2026-09-03 08:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 08:15:07","page":1} 
[2026-09-03 08:30:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 08:30:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 08:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 07:45:06","window_to":"2026-09-03 08:45:06"} 
[2026-09-03 08:45:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 08:30:07","page":1} 
[2026-09-03 08:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 08:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 09:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 08:45:06","page":1} 
[2026-09-03 09:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 08:00:07","window_to":"2026-09-03 09:00:07"} 
[2026-09-03 09:00:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 09:00:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 09:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-03 08:00:13","window_to":"2026-09-03 09:00:13"} 
[2026-09-03 09:15:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 09:00:07","page":1} 
[2026-09-03 09:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 08:15:06","window_to":"2026-09-03 09:15:06"} 
[2026-09-03 09:15:06] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 09:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 09:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 09:15:06","page":1} 
[2026-09-03 09:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 08:30:07","window_to":"2026-09-03 09:30:07"} 
[2026-09-03 09:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 09:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 09:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 08:45:06","window_to":"2026-09-03 09:45:06"} 
[2026-09-03 09:45:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 09:30:07","page":1} 
[2026-09-03 09:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 09:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 10:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 09:00:07","window_to":"2026-09-03 10:00:07"} 
[2026-09-03 10:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 09:45:06","page":1} 
[2026-09-03 10:00:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 10:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 10:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-03 09:00:12","window_to":"2026-09-03 10:00:12"} 
[2026-09-03 10:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 09:15:07","window_to":"2026-09-03 10:15:07"} 
[2026-09-03 10:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 10:00:07","page":1} 
[2026-09-03 10:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 10:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 10:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 09:30:07","window_to":"2026-09-03 10:30:07"} 
[2026-09-03 10:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 10:15:07","page":1} 
[2026-09-03 10:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 10:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 10:45:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 10:30:07","page":1} 
[2026-09-03 10:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 09:45:06","window_to":"2026-09-03 10:45:06"} 
[2026-09-03 10:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 10:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 11:00:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 10:45:06","page":1} 
[2026-09-03 11:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 10:00:08","window_to":"2026-09-03 11:00:08"} 
[2026-09-03 11:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 11:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 11:00:14] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-03 10:00:14","window_to":"2026-09-03 11:00:14"} 
[2026-09-03 11:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 11:00:08","page":1} 
[2026-09-03 11:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 10:15:06","window_to":"2026-09-03 11:15:07"} 
[2026-09-03 11:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 11:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 11:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 10:30:06","window_to":"2026-09-03 11:30:06"} 
[2026-09-03 11:30:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 11:15:07","page":1} 
[2026-09-03 11:30:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 11:30:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 11:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 11:30:06","page":1} 
[2026-09-03 11:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 10:45:07","window_to":"2026-09-03 11:45:07"} 
[2026-09-03 11:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 11:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 12:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 11:45:07","page":1} 
[2026-09-03 12:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 11:00:07","window_to":"2026-09-03 12:00:07"} 
[2026-09-03 12:00:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 12:00:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 12:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-03 11:00:12","window_to":"2026-09-03 12:00:12"} 
[2026-09-03 12:00:12] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_03_12_00_12.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-03 12:00:13] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_03_12_00_12.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-03 12:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 12:00:07","page":1} 
[2026-09-03 12:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 11:15:07","window_to":"2026-09-03 12:15:07"} 
[2026-09-03 12:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 12:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 12:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 11:30:07","window_to":"2026-09-03 12:30:07"} 
[2026-09-03 12:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 12:15:07","page":1} 
[2026-09-03 12:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 12:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 12:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 11:45:06","window_to":"2026-09-03 12:45:06"} 
[2026-09-03 12:45:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 12:30:07","page":1} 
[2026-09-03 12:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 12:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 13:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 12:45:06","page":1} 
[2026-09-03 13:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 12:00:07","window_to":"2026-09-03 13:00:07"} 
[2026-09-03 13:00:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 13:00:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 13:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-03 12:00:12","window_to":"2026-09-03 13:00:12"} 
[2026-09-03 13:09:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-03 13:09:59] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-03 13:10:38] local.WARNING: Permission route not configured; blocking request {"route":"GET /api/v1/admin/donors","user_id":1,"user_reg_no":"ADM001001","method":"GET","path":"/api/v1/admin/donors"} 
[2026-09-03 13:11:05] local.WARNING: Permission route not configured; blocking request {"route":"GET /api/v1/admin/donors","user_id":1,"user_reg_no":"ADM001001","method":"GET","path":"/api/v1/admin/donors"} 
[2026-09-03 13:15:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 13:00:06","page":1} 
[2026-09-03 13:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 12:15:06","window_to":"2026-09-03 13:15:06"} 
[2026-09-03 13:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 13:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 13:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 13:15:06","page":1} 
[2026-09-03 13:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 12:30:07","window_to":"2026-09-03 13:30:07"} 
[2026-09-03 13:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 13:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 13:30:47] local.WARNING: Permission route not configured; blocking request {"route":"GET /api/v1/admin/donors","user_id":1,"user_reg_no":"ADM001001","method":"GET","path":"/api/v1/admin/donors"} 
[2026-09-03 13:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 12:45:07","window_to":"2026-09-03 13:45:07"} 
[2026-09-03 13:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 13:30:07","page":1} 
[2026-09-03 13:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 13:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 14:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 13:00:07","window_to":"2026-09-03 14:00:07"} 
[2026-09-03 14:00:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 13:45:07","page":1} 
[2026-09-03 14:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 14:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 14:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-03 13:00:13","window_to":"2026-09-03 14:00:13"} 
[2026-09-03 14:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 14:00:07","page":1} 
[2026-09-03 14:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 13:15:07","window_to":"2026-09-03 14:15:07"} 
[2026-09-03 14:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 14:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 14:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 14:15:07","page":1} 
[2026-09-03 14:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 13:30:07","window_to":"2026-09-03 14:30:07"} 
[2026-09-03 14:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 14:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 14:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 13:45:07","window_to":"2026-09-03 14:45:07"} 
[2026-09-03 14:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 14:30:07","page":1} 
[2026-09-03 14:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 14:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 15:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 14:00:07","window_to":"2026-09-03 15:00:07"} 
[2026-09-03 15:00:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 14:45:07","page":1} 
[2026-09-03 15:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 15:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 15:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-03 14:00:12","window_to":"2026-09-03 15:00:12"} 
[2026-09-03 15:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 15:00:08","page":1} 
[2026-09-03 15:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 14:15:07","window_to":"2026-09-03 15:15:07"} 
[2026-09-03 15:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 15:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 15:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 14:30:07","window_to":"2026-09-03 15:30:07"} 
[2026-09-03 15:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 15:15:07","page":1} 
[2026-09-03 15:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 15:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 15:45:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 14:45:07","window_to":"2026-09-03 15:45:07"} 
[2026-09-03 15:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 15:30:07","page":1} 
[2026-09-03 15:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 15:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 16:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 15:00:07","window_to":"2026-09-03 16:00:07"} 
[2026-09-03 16:00:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 15:45:08","page":1} 
[2026-09-03 16:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 16:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 16:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-03 15:00:13","window_to":"2026-09-03 16:00:13"} 
[2026-09-03 16:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 15:15:06","window_to":"2026-09-03 16:15:06"} 
[2026-09-03 16:15:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 16:00:08","page":1} 
[2026-09-03 16:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 16:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 16:30:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 15:30:07","window_to":"2026-09-03 16:30:07"} 
[2026-09-03 16:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 16:15:06","page":1} 
[2026-09-03 16:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 16:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 16:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 16:30:08","page":1} 
[2026-09-03 16:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 15:45:07","window_to":"2026-09-03 16:45:07"} 
[2026-09-03 16:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 16:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 17:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 16:45:07","page":1} 
[2026-09-03 17:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 16:00:07","window_to":"2026-09-03 17:00:07"} 
[2026-09-03 17:00:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 17:00:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 17:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-03 16:00:12","window_to":"2026-09-03 17:00:12"} 
[2026-09-03 17:06:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-03 17:06:02] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-03 17:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 16:15:06","window_to":"2026-09-03 17:15:06"} 
[2026-09-03 17:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 17:00:07","page":1} 
[2026-09-03 17:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 17:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 17:29:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-03 17:29:26] local.INFO: No FCM tokens found for user {"notification_id":1,"user_id":2} 
[2026-09-03 17:29:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-03 17:29:26] local.INFO: No FCM tokens found for user {"notification_id":2,"user_id":1} 
[2026-09-03 17:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 17:15:07","page":1} 
[2026-09-03 17:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 16:30:07","window_to":"2026-09-03 17:30:07"} 
[2026-09-03 17:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 17:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 17:38:30] local.WARNING: Permission route not configured; blocking request {"route":"GET /api/v1/admin/donors","user_id":1,"user_reg_no":"ADM001001","method":"GET","path":"/api/v1/admin/donors"} 
[2026-09-03 17:43:51] local.ERROR: Gmail API error: Gmail API settings not configured  
[2026-09-03 17:43:51] local.WARNING: Gmail failed for staff credentials email, trying Zepto Mail {"gmail_error":"Gmail API settings not configured"} 
[2026-09-03 17:43:51] local.ERROR: ZeptoMailer error: Zepto Mail API key or admin email not configured  
[2026-09-03 17:43:51] local.WARNING: Failed to send staff credentials email {"staff_id":3,"error":"Zepto Mail API key or admin email not configured"} 
[2026-09-03 17:43:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-03 17:43:51] local.INFO: No FCM tokens found for user {"notification_id":3,"user_id":2} 
[2026-09-03 17:43:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-03 17:43:51] local.INFO: No FCM tokens found for user {"notification_id":4,"user_id":1} 
[2026-09-03 17:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 17:30:07","page":1} 
[2026-09-03 17:45:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 16:45:08","window_to":"2026-09-03 17:45:08"} 
[2026-09-03 17:45:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 17:45:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 18:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 17:00:07","window_to":"2026-09-03 18:00:07"} 
[2026-09-03 18:00:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 17:45:08","page":1} 
[2026-09-03 18:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 18:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 18:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-03 17:00:12","window_to":"2026-09-03 18:00:12"} 
[2026-09-03 18:06:02] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-03 18:06:02] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-03 18:15:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 18:00:08","page":1} 
[2026-09-03 18:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 17:15:06","window_to":"2026-09-03 18:15:06"} 
[2026-09-03 18:15:06] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 18:15:06] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 18:30:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 18:15:06","page":1} 
[2026-09-03 18:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 17:30:06","window_to":"2026-09-03 18:30:06"} 
[2026-09-03 18:30:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 18:30:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 18:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 18:30:06","page":1} 
[2026-09-03 18:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 17:45:07","window_to":"2026-09-03 18:45:07"} 
[2026-09-03 18:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 18:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 19:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 18:45:07","page":1} 
[2026-09-03 19:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 18:00:07","window_to":"2026-09-03 19:00:07"} 
[2026-09-03 19:00:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 19:00:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 19:00:11] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-03 18:00:11","window_to":"2026-09-03 19:00:11"} 
[2026-09-03 19:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 18:15:06","window_to":"2026-09-03 19:15:06"} 
[2026-09-03 19:15:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 19:00:07","page":1} 
[2026-09-03 19:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 19:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 19:30:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 19:15:06","page":1} 
[2026-09-03 19:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 18:30:06","window_to":"2026-09-03 19:30:06"} 
[2026-09-03 19:30:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 19:30:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 19:45:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 19:30:06","page":1} 
[2026-09-03 19:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 18:45:06","window_to":"2026-09-03 19:45:06"} 
[2026-09-03 19:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 19:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 20:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 19:45:06","page":1} 
[2026-09-03 20:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 19:00:07","window_to":"2026-09-03 20:00:08"} 
[2026-09-03 20:00:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 20:00:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 20:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-03 19:00:12","window_to":"2026-09-03 20:00:12"} 
[2026-09-03 20:15:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 20:00:07","page":1} 
[2026-09-03 20:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 19:15:06","window_to":"2026-09-03 20:15:06"} 
[2026-09-03 20:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 20:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 20:30:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 20:15:06","page":1} 
[2026-09-03 20:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 19:30:06","window_to":"2026-09-03 20:30:06"} 
[2026-09-03 20:30:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 20:30:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 20:45:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 19:45:06","window_to":"2026-09-03 20:45:06"} 
[2026-09-03 20:45:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 20:30:06","page":1} 
[2026-09-03 20:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 20:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 21:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 20:00:08","window_to":"2026-09-03 21:00:08"} 
[2026-09-03 21:00:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 20:45:06","page":1} 
[2026-09-03 21:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 21:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 21:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-03 20:00:12","window_to":"2026-09-03 21:00:12"} 
[2026-09-03 21:15:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 21:00:08","page":1} 
[2026-09-03 21:15:06] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 21:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 20:15:06","window_to":"2026-09-03 21:15:06"} 
[2026-09-03 21:15:06] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 21:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 20:30:07","window_to":"2026-09-03 21:30:07"} 
[2026-09-03 21:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 21:15:06","page":1} 
[2026-09-03 21:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 21:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 21:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 20:45:06","window_to":"2026-09-03 21:45:06"} 
[2026-09-03 21:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 21:30:07","page":1} 
[2026-09-03 21:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 21:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 22:00:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 21:45:07","page":1} 
[2026-09-03 22:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 21:00:07","window_to":"2026-09-03 22:00:07"} 
[2026-09-03 22:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 22:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 22:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-03 21:00:12","window_to":"2026-09-03 22:00:12"} 
[2026-09-03 22:15:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 22:00:07","page":1} 
[2026-09-03 22:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 21:15:06","window_to":"2026-09-03 22:15:06"} 
[2026-09-03 22:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 22:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 22:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 21:30:07","window_to":"2026-09-03 22:30:07"} 
[2026-09-03 22:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 22:15:06","page":1} 
[2026-09-03 22:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 22:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 22:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 22:30:07","page":1} 
[2026-09-03 22:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 21:45:07","window_to":"2026-09-03 22:45:07"} 
[2026-09-03 22:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 22:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 23:00:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 22:00:07","window_to":"2026-09-03 23:00:07"} 
[2026-09-03 23:00:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 22:45:07","page":1} 
[2026-09-03 23:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 23:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 23:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-03 22:00:12","window_to":"2026-09-03 23:00:12"} 
[2026-09-03 23:15:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 22:15:06","window_to":"2026-09-03 23:15:06"} 
[2026-09-03 23:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 23:00:08","page":1} 
[2026-09-03 23:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 23:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 23:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 23:15:07","page":1} 
[2026-09-03 23:30:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 22:30:07","window_to":"2026-09-03 23:30:07"} 
[2026-09-03 23:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 23:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-03 23:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 22:45:07","window_to":"2026-09-03 23:45:07"} 
[2026-09-03 23:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 23:30:07","page":1} 
[2026-09-03 23:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-03 23:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 00:00:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-03 23:45:07","page":1} 
[2026-09-04 00:00:10] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 23:00:10","window_to":"2026-09-04 00:00:10"} 
[2026-09-04 00:00:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 00:00:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 00:00:14] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_04_00_00_14.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-04 00:00:14] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-03 23:00:14","window_to":"2026-09-04 00:00:14"} 
[2026-09-04 00:00:16] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_04_00_00_14.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-04 00:15:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 23:15:06","window_to":"2026-09-04 00:15:06"} 
[2026-09-04 00:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 00:00:09","page":1} 
[2026-09-04 00:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 00:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 00:30:06] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 23:30:06","window_to":"2026-09-04 00:30:06"} 
[2026-09-04 00:30:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 00:15:07","page":1} 
[2026-09-04 00:30:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 00:30:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 00:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 00:30:06","page":1} 
[2026-09-04 00:45:07] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-03 23:45:07","window_to":"2026-09-04 00:45:07"} 
[2026-09-04 00:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 00:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 01:00:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 00:45:07","page":1} 
[2026-09-04 01:00:08] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 00:00:08","window_to":"2026-09-04 01:00:08"} 
[2026-09-04 01:00:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 01:00:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 01:00:14] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-04 00:00:14","window_to":"2026-09-04 01:00:14"} 
[2026-09-04 01:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 00:15:11","window_to":"2026-09-04 01:15:11"} 
[2026-09-04 01:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 01:00:08","page":1} 
[2026-09-04 01:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 01:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 01:30:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 01:15:11","page":1} 
[2026-09-04 01:30:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 00:30:11","window_to":"2026-09-04 01:30:11"} 
[2026-09-04 01:30:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 01:30:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 01:45:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 01:30:10","page":1} 
[2026-09-04 01:45:10] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 00:45:10","window_to":"2026-09-04 01:45:10"} 
[2026-09-04 01:45:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 01:45:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 02:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 01:45:10","page":1} 
[2026-09-04 02:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 01:00:13","window_to":"2026-09-04 02:00:13"} 
[2026-09-04 02:00:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 02:00:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 02:00:21] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-04 01:00:21","window_to":"2026-09-04 02:00:21"} 
[2026-09-04 02:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 02:00:13","page":1} 
[2026-09-04 02:15:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 01:15:09","window_to":"2026-09-04 02:15:09"} 
[2026-09-04 02:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 02:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 02:30:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 01:30:11","window_to":"2026-09-04 02:30:12"} 
[2026-09-04 02:30:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 02:15:09","page":1} 
[2026-09-04 02:30:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 02:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 02:45:10] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 01:45:09","window_to":"2026-09-04 02:45:09"} 
[2026-09-04 02:45:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 02:30:12","page":1} 
[2026-09-04 02:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 02:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 03:00:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 02:00:12","window_to":"2026-09-04 03:00:12"} 
[2026-09-04 03:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 02:45:10","page":1} 
[2026-09-04 03:00:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 03:00:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 03:00:19] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-04 02:00:19","window_to":"2026-09-04 03:00:19"} 
[2026-09-04 03:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 03:00:12","page":1} 
[2026-09-04 03:15:10] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 02:15:09","window_to":"2026-09-04 03:15:09"} 
[2026-09-04 03:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 03:15:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 03:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 03:15:09","page":1} 
[2026-09-04 03:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 02:30:13","window_to":"2026-09-04 03:30:13"} 
[2026-09-04 03:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 03:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 03:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 03:30:14","page":1} 
[2026-09-04 03:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 02:45:11","window_to":"2026-09-04 03:45:11"} 
[2026-09-04 03:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 03:45:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 04:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 03:00:13","window_to":"2026-09-04 04:00:13"} 
[2026-09-04 04:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 03:45:11","page":1} 
[2026-09-04 04:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 04:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 04:00:22] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-04 03:00:22","window_to":"2026-09-04 04:00:22"} 
[2026-09-04 04:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 03:15:11","window_to":"2026-09-04 04:15:11"} 
[2026-09-04 04:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 04:00:14","page":1} 
[2026-09-04 04:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 04:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 04:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 03:30:13","window_to":"2026-09-04 04:30:13"} 
[2026-09-04 04:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 04:15:11","page":1} 
[2026-09-04 04:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 04:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 04:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 04:30:13","page":1} 
[2026-09-04 04:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 03:45:11","window_to":"2026-09-04 04:45:11"} 
[2026-09-04 04:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 04:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 05:00:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 04:00:12","window_to":"2026-09-04 05:00:12"} 
[2026-09-04 05:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 04:45:11","page":1} 
[2026-09-04 05:00:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 05:00:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 05:00:20] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-04 04:00:20","window_to":"2026-09-04 05:00:20"} 
[2026-09-04 05:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 04:15:11","window_to":"2026-09-04 05:15:11"} 
[2026-09-04 05:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 05:00:12","page":1} 
[2026-09-04 05:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 05:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 05:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 04:30:14","window_to":"2026-09-04 05:30:14"} 
[2026-09-04 05:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 05:15:12","page":1} 
[2026-09-04 05:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 05:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 05:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 04:45:11","window_to":"2026-09-04 05:45:12"} 
[2026-09-04 05:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 05:30:15","page":1} 
[2026-09-04 05:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 05:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 06:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 05:45:12","page":1} 
[2026-09-04 06:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 05:00:14","window_to":"2026-09-04 06:00:14"} 
[2026-09-04 06:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 06:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 06:00:21] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-04 05:00:21","window_to":"2026-09-04 06:00:21"} 
[2026-09-04 06:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 05:15:11","window_to":"2026-09-04 06:15:11"} 
[2026-09-04 06:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 06:00:13","page":1} 
[2026-09-04 06:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 06:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 06:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 05:30:13","window_to":"2026-09-04 06:30:14"} 
[2026-09-04 06:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 06:15:11","page":1} 
[2026-09-04 06:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 06:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 06:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 05:45:12","window_to":"2026-09-04 06:45:12"} 
[2026-09-04 06:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 06:30:14","page":1} 
[2026-09-04 06:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 06:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 07:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 06:00:13","window_to":"2026-09-04 07:00:13"} 
[2026-09-04 07:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 06:45:13","page":1} 
[2026-09-04 07:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 07:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 07:00:22] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-04 06:00:22","window_to":"2026-09-04 07:00:22"} 
[2026-09-04 07:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 07:00:14","page":1} 
[2026-09-04 07:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 06:15:12","window_to":"2026-09-04 07:15:12"} 
[2026-09-04 07:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 07:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 07:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 06:30:12","window_to":"2026-09-04 07:30:12"} 
[2026-09-04 07:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 07:15:11","page":1} 
[2026-09-04 07:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 07:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 07:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 07:30:13","page":1} 
[2026-09-04 07:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 06:45:13","window_to":"2026-09-04 07:45:13"} 
[2026-09-04 07:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 07:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 08:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 07:00:15","window_to":"2026-09-04 08:00:15"} 
[2026-09-04 08:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 07:45:13","page":1} 
[2026-09-04 08:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 08:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 08:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-04 07:00:27","window_to":"2026-09-04 08:00:27"} 
[2026-09-04 08:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 08:00:15","page":1} 
[2026-09-04 08:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 07:15:12","window_to":"2026-09-04 08:15:12"} 
[2026-09-04 08:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 08:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 08:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 08:15:12","page":1} 
[2026-09-04 08:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 07:30:13","window_to":"2026-09-04 08:30:14"} 
[2026-09-04 08:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 08:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 08:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 08:30:14","page":1} 
[2026-09-04 08:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 07:45:12","window_to":"2026-09-04 08:45:12"} 
[2026-09-04 08:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 08:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 09:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 08:00:14","window_to":"2026-09-04 09:00:14"} 
[2026-09-04 09:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 08:45:12","page":1} 
[2026-09-04 09:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 09:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 09:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-04 08:00:24","window_to":"2026-09-04 09:00:24"} 
[2026-09-04 09:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 09:00:15","page":1} 
[2026-09-04 09:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 08:15:12","window_to":"2026-09-04 09:15:12"} 
[2026-09-04 09:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 09:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 09:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 08:30:13","window_to":"2026-09-04 09:30:13"} 
[2026-09-04 09:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 09:15:11","page":1} 
[2026-09-04 09:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 09:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 09:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 09:30:13","page":1} 
[2026-09-04 09:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 08:45:11","window_to":"2026-09-04 09:45:11"} 
[2026-09-04 09:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 09:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 10:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 09:00:14","window_to":"2026-09-04 10:00:14"} 
[2026-09-04 10:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 09:45:12","page":1} 
[2026-09-04 10:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 10:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 10:00:22] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-04 09:00:21","window_to":"2026-09-04 10:00:22"} 
[2026-09-04 10:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 09:15:11","window_to":"2026-09-04 10:15:11"} 
[2026-09-04 10:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 10:00:14","page":1} 
[2026-09-04 10:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 10:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 10:30:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 09:30:12","window_to":"2026-09-04 10:30:12"} 
[2026-09-04 10:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 10:15:11","page":1} 
[2026-09-04 10:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 10:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 10:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 10:30:13","page":1} 
[2026-09-04 10:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 09:45:11","window_to":"2026-09-04 10:45:11"} 
[2026-09-04 10:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 10:45:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 11:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 10:45:11","page":1} 
[2026-09-04 11:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 10:00:12","window_to":"2026-09-04 11:00:13"} 
[2026-09-04 11:00:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 11:00:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 11:00:21] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-04 10:00:21","window_to":"2026-09-04 11:00:21"} 
[2026-09-04 11:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 11:00:12","page":1} 
[2026-09-04 11:15:09] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 10:15:09","window_to":"2026-09-04 11:15:09"} 
[2026-09-04 11:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 11:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 11:30:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 11:15:09","page":1} 
[2026-09-04 11:30:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 10:30:12","window_to":"2026-09-04 11:30:12"} 
[2026-09-04 11:30:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 11:30:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 11:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 11:30:12","page":1} 
[2026-09-04 11:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 10:45:11","window_to":"2026-09-04 11:45:11"} 
[2026-09-04 11:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 11:45:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 12:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 11:00:12","window_to":"2026-09-04 12:00:13"} 
[2026-09-04 12:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 11:45:11","page":1} 
[2026-09-04 12:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 12:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 12:00:23] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-04 11:00:23","window_to":"2026-09-04 12:00:23"} 
[2026-09-04 12:00:23] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_04_12_00_23.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-04 12:00:26] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_04_12_00_23.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-04 12:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 12:00:13","page":1} 
[2026-09-04 12:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 11:15:14","window_to":"2026-09-04 12:15:14"} 
[2026-09-04 12:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 12:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 12:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 11:30:14","window_to":"2026-09-04 12:30:14"} 
[2026-09-04 12:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 12:15:14","page":1} 
[2026-09-04 12:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 12:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 12:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 11:45:14","window_to":"2026-09-04 12:45:14"} 
[2026-09-04 12:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 12:30:15","page":1} 
[2026-09-04 12:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 12:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 13:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 12:45:14","page":1} 
[2026-09-04 13:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 12:00:15","window_to":"2026-09-04 13:00:16"} 
[2026-09-04 13:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 13:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 13:00:29] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-04 12:00:29","window_to":"2026-09-04 13:00:29"} 
[2026-09-04 13:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 13:00:16","page":1} 
[2026-09-04 13:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 12:15:11","window_to":"2026-09-04 13:15:11"} 
[2026-09-04 13:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 13:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 13:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 12:30:14","window_to":"2026-09-04 13:30:14"} 
[2026-09-04 13:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 13:15:11","page":1} 
[2026-09-04 13:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 13:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 13:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 13:30:15","page":1} 
[2026-09-04 13:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 12:45:13","window_to":"2026-09-04 13:45:13"} 
[2026-09-04 13:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 13:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 14:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 13:45:13","page":1} 
[2026-09-04 14:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 13:00:15","window_to":"2026-09-04 14:00:15"} 
[2026-09-04 14:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 14:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 14:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-04 13:00:26","window_to":"2026-09-04 14:00:26"} 
[2026-09-04 14:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 14:00:15","page":1} 
[2026-09-04 14:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 13:15:13","window_to":"2026-09-04 14:15:13"} 
[2026-09-04 14:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 14:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 14:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 13:30:13","window_to":"2026-09-04 14:30:13"} 
[2026-09-04 14:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 14:15:13","page":1} 
[2026-09-04 14:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 14:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 14:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 13:45:11","window_to":"2026-09-04 14:45:11"} 
[2026-09-04 14:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 14:30:13","page":1} 
[2026-09-04 14:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 14:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 15:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 14:00:14","window_to":"2026-09-04 15:00:14"} 
[2026-09-04 15:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 14:45:12","page":1} 
[2026-09-04 15:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 15:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 15:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-04 14:00:26","window_to":"2026-09-04 15:00:26"} 
[2026-09-04 15:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 15:00:14","page":1} 
[2026-09-04 15:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 14:15:11","window_to":"2026-09-04 15:15:11"} 
[2026-09-04 15:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 15:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 15:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 15:15:11","page":1} 
[2026-09-04 15:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 14:30:14","window_to":"2026-09-04 15:30:14"} 
[2026-09-04 15:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 15:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 15:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 15:30:14","page":1} 
[2026-09-04 15:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 14:45:12","window_to":"2026-09-04 15:45:12"} 
[2026-09-04 15:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 15:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 16:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 15:00:18","window_to":"2026-09-04 16:00:18"} 
[2026-09-04 16:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 15:45:12","page":1} 
[2026-09-04 16:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 16:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 16:00:35] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-04 15:00:34","window_to":"2026-09-04 16:00:34"} 
[2026-09-04 16:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 16:00:19","page":1} 
[2026-09-04 16:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 15:15:12","window_to":"2026-09-04 16:15:12"} 
[2026-09-04 16:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 16:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 16:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 15:30:14","window_to":"2026-09-04 16:30:14"} 
[2026-09-04 16:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 16:15:12","page":1} 
[2026-09-04 16:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 16:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 16:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 16:30:14","page":1} 
[2026-09-04 16:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 15:45:13","window_to":"2026-09-04 16:45:14"} 
[2026-09-04 16:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 16:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 17:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 16:00:13","window_to":"2026-09-04 17:00:13"} 
[2026-09-04 17:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 16:45:14","page":1} 
[2026-09-04 17:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 17:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 17:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-04 16:00:23","window_to":"2026-09-04 17:00:23"} 
[2026-09-04 17:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 16:15:14","window_to":"2026-09-04 17:15:14"} 
[2026-09-04 17:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 17:00:14","page":1} 
[2026-09-04 17:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 17:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 17:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 17:15:15","page":1} 
[2026-09-04 17:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 16:30:13","window_to":"2026-09-04 17:30:13"} 
[2026-09-04 17:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 17:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 17:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 17:30:13","page":1} 
[2026-09-04 17:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 16:45:10","window_to":"2026-09-04 17:45:10"} 
[2026-09-04 17:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 17:45:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 18:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 17:00:15","window_to":"2026-09-04 18:00:16"} 
[2026-09-04 18:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 17:45:10","page":1} 
[2026-09-04 18:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 18:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 18:00:28] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-04 17:00:27","window_to":"2026-09-04 18:00:28"} 
[2026-09-04 18:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 18:00:17","page":1} 
[2026-09-04 18:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 17:15:12","window_to":"2026-09-04 18:15:12"} 
[2026-09-04 18:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 18:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 18:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 17:30:12","window_to":"2026-09-04 18:30:12"} 
[2026-09-04 18:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 18:15:12","page":1} 
[2026-09-04 18:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 18:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 18:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 17:45:12","window_to":"2026-09-04 18:45:12"} 
[2026-09-04 18:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 18:30:13","page":1} 
[2026-09-04 18:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 18:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 19:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 18:00:14","window_to":"2026-09-04 19:00:15"} 
[2026-09-04 19:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 18:45:13","page":1} 
[2026-09-04 19:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 19:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 19:00:28] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-04 18:00:28","window_to":"2026-09-04 19:00:28"} 
[2026-09-04 19:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 19:00:15","page":1} 
[2026-09-04 19:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 18:15:14","window_to":"2026-09-04 19:15:14"} 
[2026-09-04 19:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 19:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 19:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 19:15:14","page":1} 
[2026-09-04 19:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 18:30:14","window_to":"2026-09-04 19:30:14"} 
[2026-09-04 19:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 19:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 19:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 18:45:12","window_to":"2026-09-04 19:45:12"} 
[2026-09-04 19:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 19:30:14","page":1} 
[2026-09-04 19:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 19:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 20:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 19:45:12","page":1} 
[2026-09-04 20:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 19:00:15","window_to":"2026-09-04 20:00:15"} 
[2026-09-04 20:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 20:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 20:00:28] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-04 19:00:27","window_to":"2026-09-04 20:00:28"} 
[2026-09-04 20:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 19:15:11","window_to":"2026-09-04 20:15:12"} 
[2026-09-04 20:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 20:00:15","page":1} 
[2026-09-04 20:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 20:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 20:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 20:15:12","page":1} 
[2026-09-04 20:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 19:30:14","window_to":"2026-09-04 20:30:14"} 
[2026-09-04 20:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 20:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 20:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 19:45:12","window_to":"2026-09-04 20:45:12"} 
[2026-09-04 20:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 20:30:14","page":1} 
[2026-09-04 20:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 20:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 21:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 20:45:12","page":1} 
[2026-09-04 21:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 20:00:14","window_to":"2026-09-04 21:00:14"} 
[2026-09-04 21:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 21:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 21:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-04 20:00:25","window_to":"2026-09-04 21:00:25"} 
[2026-09-04 21:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 20:15:11","window_to":"2026-09-04 21:15:11"} 
[2026-09-04 21:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 21:00:14","page":1} 
[2026-09-04 21:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 21:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 21:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 21:15:11","page":1} 
[2026-09-04 21:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 20:30:12","window_to":"2026-09-04 21:30:13"} 
[2026-09-04 21:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 21:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 21:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 21:30:13","page":1} 
[2026-09-04 21:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 20:45:13","window_to":"2026-09-04 21:45:13"} 
[2026-09-04 21:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 21:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 22:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 21:45:12","page":1} 
[2026-09-04 22:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 21:00:14","window_to":"2026-09-04 22:00:14"} 
[2026-09-04 22:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 22:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 22:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-04 21:00:24","window_to":"2026-09-04 22:00:24"} 
[2026-09-04 22:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 21:15:12","window_to":"2026-09-04 22:15:12"} 
[2026-09-04 22:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 22:00:13","page":1} 
[2026-09-04 22:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 22:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 22:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 21:30:14","window_to":"2026-09-04 22:30:14"} 
[2026-09-04 22:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 22:15:13","page":1} 
[2026-09-04 22:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 22:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 22:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 21:45:12","window_to":"2026-09-04 22:45:12"} 
[2026-09-04 22:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 22:30:16","page":1} 
[2026-09-04 22:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 22:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 23:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 22:45:13","page":1} 
[2026-09-04 23:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 22:00:15","window_to":"2026-09-04 23:00:15"} 
[2026-09-04 23:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 23:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 23:00:28] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-04 22:00:28","window_to":"2026-09-04 23:00:28"} 
[2026-09-04 23:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 23:00:14","page":1} 
[2026-09-04 23:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 22:15:12","window_to":"2026-09-04 23:15:13"} 
[2026-09-04 23:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 23:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 23:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 23:15:12","page":1} 
[2026-09-04 23:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 22:30:13","window_to":"2026-09-04 23:30:13"} 
[2026-09-04 23:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 23:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-04 23:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 23:30:13","page":1} 
[2026-09-04 23:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 22:45:12","window_to":"2026-09-04 23:45:12"} 
[2026-09-04 23:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-04 23:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 00:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-04 23:45:12","page":1} 
[2026-09-05 00:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 23:00:14","window_to":"2026-09-05 00:00:14"} 
[2026-09-05 00:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 00:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 00:00:28] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-04 23:00:27","window_to":"2026-09-05 00:00:27"} 
[2026-09-05 00:00:34] local.INFO: Automated database backup created successfully: backup_2026_09_05_00_00_28.sql  
[2026-09-05 00:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 00:00:14","page":1} 
[2026-09-05 00:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 23:15:11","window_to":"2026-09-05 00:15:11"} 
[2026-09-05 00:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 00:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 00:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 00:15:10","page":1} 
[2026-09-05 00:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 23:30:13","window_to":"2026-09-05 00:30:13"} 
[2026-09-05 00:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 00:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 00:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-04 23:45:11","window_to":"2026-09-05 00:45:11"} 
[2026-09-05 00:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 00:30:13","page":1} 
[2026-09-05 00:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 00:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 01:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 00:45:12","page":1} 
[2026-09-05 01:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 00:00:13","window_to":"2026-09-05 01:00:13"} 
[2026-09-05 01:00:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 01:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 01:00:23] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-05 00:00:23","window_to":"2026-09-05 01:00:23"} 
[2026-09-05 01:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 00:15:11","window_to":"2026-09-05 01:15:11"} 
[2026-09-05 01:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 01:00:13","page":1} 
[2026-09-05 01:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 01:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 01:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 01:15:12","page":1} 
[2026-09-05 01:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 00:30:13","window_to":"2026-09-05 01:30:13"} 
[2026-09-05 01:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 01:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 01:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 00:45:10","window_to":"2026-09-05 01:45:10"} 
[2026-09-05 01:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 01:30:13","page":1} 
[2026-09-05 01:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 01:45:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 02:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 01:00:12","window_to":"2026-09-05 02:00:12"} 
[2026-09-05 02:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 01:45:11","page":1} 
[2026-09-05 02:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 02:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 02:00:23] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-05 01:00:22","window_to":"2026-09-05 02:00:22"} 
[2026-09-05 02:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 01:15:11","window_to":"2026-09-05 02:15:11"} 
[2026-09-05 02:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 02:00:13","page":1} 
[2026-09-05 02:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 02:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 02:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 01:30:12","window_to":"2026-09-05 02:30:12"} 
[2026-09-05 02:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 02:15:12","page":1} 
[2026-09-05 02:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 02:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 02:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 02:30:13","page":1} 
[2026-09-05 02:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 01:45:11","window_to":"2026-09-05 02:45:11"} 
[2026-09-05 02:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 02:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 03:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 02:45:11","page":1} 
[2026-09-05 03:00:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 02:00:12","window_to":"2026-09-05 03:00:12"} 
[2026-09-05 03:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 03:00:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 03:00:21] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-05 02:00:21","window_to":"2026-09-05 03:00:21"} 
[2026-09-05 03:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 03:00:12","page":1} 
[2026-09-05 03:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 02:15:11","window_to":"2026-09-05 03:15:11"} 
[2026-09-05 03:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 03:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 03:30:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 02:30:11","window_to":"2026-09-05 03:30:11"} 
[2026-09-05 03:30:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 03:15:11","page":1} 
[2026-09-05 03:30:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 03:30:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 03:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 02:45:11","window_to":"2026-09-05 03:45:11"} 
[2026-09-05 03:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 03:30:12","page":1} 
[2026-09-05 03:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 03:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 04:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 03:00:13","window_to":"2026-09-05 04:00:13"} 
[2026-09-05 04:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 03:45:12","page":1} 
[2026-09-05 04:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 04:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 04:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-05 03:00:23","window_to":"2026-09-05 04:00:23"} 
[2026-09-05 04:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 03:15:10","window_to":"2026-09-05 04:15:10"} 
[2026-09-05 04:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 04:00:14","page":1} 
[2026-09-05 04:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 04:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 04:30:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 04:15:11","page":1} 
[2026-09-05 04:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 03:30:13","window_to":"2026-09-05 04:30:13"} 
[2026-09-05 04:30:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 04:30:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 04:45:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 04:30:12","page":1} 
[2026-09-05 04:45:10] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 03:45:10","window_to":"2026-09-05 04:45:10"} 
[2026-09-05 04:45:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 04:45:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 05:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 04:45:10","page":1} 
[2026-09-05 05:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 04:00:13","window_to":"2026-09-05 05:00:13"} 
[2026-09-05 05:00:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 05:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 05:00:23] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-05 04:00:23","window_to":"2026-09-05 05:00:23"} 
[2026-09-05 05:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 04:15:11","window_to":"2026-09-05 05:15:11"} 
[2026-09-05 05:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 05:00:13","page":1} 
[2026-09-05 05:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 05:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 05:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 05:15:11","page":1} 
[2026-09-05 05:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 04:30:14","window_to":"2026-09-05 05:30:14"} 
[2026-09-05 05:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 05:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 05:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 04:45:11","window_to":"2026-09-05 05:45:11"} 
[2026-09-05 05:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 05:30:14","page":1} 
[2026-09-05 05:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 05:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 06:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 05:45:11","page":1} 
[2026-09-05 06:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 05:00:13","window_to":"2026-09-05 06:00:13"} 
[2026-09-05 06:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 06:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 06:00:23] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-05 05:00:23","window_to":"2026-09-05 06:00:23"} 
[2026-09-05 06:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 05:15:11","window_to":"2026-09-05 06:15:11"} 
[2026-09-05 06:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 06:00:13","page":1} 
[2026-09-05 06:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 06:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 06:30:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 06:15:12","page":1} 
[2026-09-05 06:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 05:30:13","window_to":"2026-09-05 06:30:13"} 
[2026-09-05 06:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 06:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 06:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 05:45:10","window_to":"2026-09-05 06:45:10"} 
[2026-09-05 06:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 06:30:12","page":1} 
[2026-09-05 06:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 06:45:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 07:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 06:00:13","window_to":"2026-09-05 07:00:13"} 
[2026-09-05 07:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 06:45:11","page":1} 
[2026-09-05 07:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 07:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 07:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-05 06:00:24","window_to":"2026-09-05 07:00:24"} 
[2026-09-05 07:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 06:15:11","window_to":"2026-09-05 07:15:11"} 
[2026-09-05 07:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 07:00:14","page":1} 
[2026-09-05 07:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 07:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 07:30:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 06:30:12","window_to":"2026-09-05 07:30:12"} 
[2026-09-05 07:30:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 07:15:11","page":1} 
[2026-09-05 07:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 07:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 07:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 07:30:12","page":1} 
[2026-09-05 07:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 06:45:12","window_to":"2026-09-05 07:45:12"} 
[2026-09-05 07:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 07:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 08:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 07:45:12","page":1} 
[2026-09-05 08:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 07:00:14","window_to":"2026-09-05 08:00:14"} 
[2026-09-05 08:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 08:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 08:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-05 07:00:26","window_to":"2026-09-05 08:00:26"} 
[2026-09-05 08:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 08:00:14","page":1} 
[2026-09-05 08:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 07:15:11","window_to":"2026-09-05 08:15:11"} 
[2026-09-05 08:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 08:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 08:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 08:15:11","page":1} 
[2026-09-05 08:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 07:30:14","window_to":"2026-09-05 08:30:14"} 
[2026-09-05 08:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 08:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 08:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 08:30:14","page":1} 
[2026-09-05 08:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 07:45:12","window_to":"2026-09-05 08:45:12"} 
[2026-09-05 08:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 08:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 09:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 08:00:14","window_to":"2026-09-05 09:00:14"} 
[2026-09-05 09:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 08:45:12","page":1} 
[2026-09-05 09:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 09:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 09:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-05 08:00:25","window_to":"2026-09-05 09:00:25"} 
[2026-09-05 09:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 09:00:15","page":1} 
[2026-09-05 09:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 08:15:12","window_to":"2026-09-05 09:15:12"} 
[2026-09-05 09:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 09:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 09:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 08:30:13","window_to":"2026-09-05 09:30:13"} 
[2026-09-05 09:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 09:15:12","page":1} 
[2026-09-05 09:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 09:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 09:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 09:30:14","page":1} 
[2026-09-05 09:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 08:45:13","window_to":"2026-09-05 09:45:13"} 
[2026-09-05 09:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 09:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 10:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 09:00:14","window_to":"2026-09-05 10:00:14"} 
[2026-09-05 10:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 09:45:13","page":1} 
[2026-09-05 10:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 10:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 10:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-05 09:00:27","window_to":"2026-09-05 10:00:27"} 
[2026-09-05 10:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 10:00:14","page":1} 
[2026-09-05 10:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 09:15:13","window_to":"2026-09-05 10:15:13"} 
[2026-09-05 10:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 10:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 10:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 10:15:12","page":1} 
[2026-09-05 10:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 09:30:15","window_to":"2026-09-05 10:30:15"} 
[2026-09-05 10:30:18] local.ERROR: ❌ Exception while polling TikTok leads {"error":"cURL error 35: OpenSSL/3.0.13: error:0A000438:SSL routines::tlsv1 alert internal error (see https://curl.se/libcurl/c/libcurl-errors.html) for https://business-api.tiktok.com/open_api/v1.3/page/leads/get/?filtering=%7B%22start_time%22%3A%222026-09-05%2010%3A15%3A12%22%7D&page=1&page_size=100"} 
[2026-09-05 10:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 10:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 09:45:12","window_to":"2026-09-05 10:45:12"} 
[2026-09-05 10:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 10:30:15","page":1} 
[2026-09-05 10:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 10:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 11:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 10:00:14","window_to":"2026-09-05 11:00:14"} 
[2026-09-05 11:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 10:45:13","page":1} 
[2026-09-05 11:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 11:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 11:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-05 10:00:26","window_to":"2026-09-05 11:00:26"} 
[2026-09-05 11:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 10:15:13","window_to":"2026-09-05 11:15:13"} 
[2026-09-05 11:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 11:00:15","page":1} 
[2026-09-05 11:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 11:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 11:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 11:15:13","page":1} 
[2026-09-05 11:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 10:30:12","window_to":"2026-09-05 11:30:13"} 
[2026-09-05 11:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 11:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 11:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 11:30:12","page":1} 
[2026-09-05 11:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 10:45:12","window_to":"2026-09-05 11:45:12"} 
[2026-09-05 11:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 11:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 12:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 11:45:12","page":1} 
[2026-09-05 12:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 11:00:14","window_to":"2026-09-05 12:00:14"} 
[2026-09-05 12:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 12:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 12:00:28] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-05 11:00:28","window_to":"2026-09-05 12:00:28"} 
[2026-09-05 12:00:33] local.INFO: Automated database backup created successfully: backup_2026_09_05_12_00_28.sql  
[2026-09-05 12:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 12:00:15","page":1} 
[2026-09-05 12:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 11:15:15","window_to":"2026-09-05 12:15:15"} 
[2026-09-05 12:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 12:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 12:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 11:30:14","window_to":"2026-09-05 12:30:14"} 
[2026-09-05 12:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 12:15:14","page":1} 
[2026-09-05 12:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 12:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 12:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 11:45:13","window_to":"2026-09-05 12:45:13"} 
[2026-09-05 12:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 12:30:15","page":1} 
[2026-09-05 12:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 12:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 13:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 12:45:13","page":1} 
[2026-09-05 13:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 12:00:16","window_to":"2026-09-05 13:00:16"} 
[2026-09-05 13:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 13:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 13:00:28] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-05 12:00:28","window_to":"2026-09-05 13:00:28"} 
[2026-09-05 13:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 13:00:16","page":1} 
[2026-09-05 13:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 12:15:13","window_to":"2026-09-05 13:15:13"} 
[2026-09-05 13:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 13:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 13:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 13:15:13","page":1} 
[2026-09-05 13:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 12:30:15","window_to":"2026-09-05 13:30:15"} 
[2026-09-05 13:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 13:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 13:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 12:45:14","window_to":"2026-09-05 13:45:14"} 
[2026-09-05 13:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 13:30:15","page":1} 
[2026-09-05 13:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 13:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 14:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 13:45:15","page":1} 
[2026-09-05 14:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 13:00:14","window_to":"2026-09-05 14:00:15"} 
[2026-09-05 14:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 14:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 14:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-05 13:00:26","window_to":"2026-09-05 14:00:26"} 
[2026-09-05 14:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 13:15:12","window_to":"2026-09-05 14:15:13"} 
[2026-09-05 14:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 14:00:15","page":1} 
[2026-09-05 14:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 14:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 14:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 13:30:14","window_to":"2026-09-05 14:30:14"} 
[2026-09-05 14:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 14:15:13","page":1} 
[2026-09-05 14:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 14:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 14:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 13:45:14","window_to":"2026-09-05 14:45:14"} 
[2026-09-05 14:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 14:30:15","page":1} 
[2026-09-05 14:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 14:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 15:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 14:45:14","page":1} 
[2026-09-05 15:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 14:00:14","window_to":"2026-09-05 15:00:14"} 
[2026-09-05 15:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 15:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 15:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-05 14:00:26","window_to":"2026-09-05 15:00:26"} 
[2026-09-05 15:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 15:00:14","page":1} 
[2026-09-05 15:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 14:15:11","window_to":"2026-09-05 15:15:12"} 
[2026-09-05 15:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 15:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 15:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 14:30:17","window_to":"2026-09-05 15:30:17"} 
[2026-09-05 15:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 15:15:12","page":1} 
[2026-09-05 15:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 15:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 15:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 14:45:14","window_to":"2026-09-05 15:45:14"} 
[2026-09-05 15:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 15:30:17","page":1} 
[2026-09-05 15:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 15:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 16:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 15:00:15","window_to":"2026-09-05 16:00:15"} 
[2026-09-05 16:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 15:45:15","page":1} 
[2026-09-05 16:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 16:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 16:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-05 15:00:27","window_to":"2026-09-05 16:00:27"} 
[2026-09-05 16:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 15:15:13","window_to":"2026-09-05 16:15:13"} 
[2026-09-05 16:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 16:00:15","page":1} 
[2026-09-05 16:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 16:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 16:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 15:30:13","window_to":"2026-09-05 16:30:13"} 
[2026-09-05 16:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 16:15:13","page":1} 
[2026-09-05 16:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 16:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 16:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 16:30:13","page":1} 
[2026-09-05 16:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 15:45:13","window_to":"2026-09-05 16:45:13"} 
[2026-09-05 16:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 16:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 17:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 16:00:14","window_to":"2026-09-05 17:00:14"} 
[2026-09-05 17:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 16:45:13","page":1} 
[2026-09-05 17:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 17:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 17:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-05 16:00:25","window_to":"2026-09-05 17:00:25"} 
[2026-09-05 17:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 17:00:15","page":1} 
[2026-09-05 17:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 16:15:16","window_to":"2026-09-05 17:15:16"} 
[2026-09-05 17:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 17:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 17:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 16:30:16","window_to":"2026-09-05 17:30:16"} 
[2026-09-05 17:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 17:15:16","page":1} 
[2026-09-05 17:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 17:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 17:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 17:30:16","page":1} 
[2026-09-05 17:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 16:45:12","window_to":"2026-09-05 17:45:12"} 
[2026-09-05 17:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 17:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 18:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 17:45:12","page":1} 
[2026-09-05 18:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 17:00:15","window_to":"2026-09-05 18:00:15"} 
[2026-09-05 18:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 18:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 18:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-05 17:00:26","window_to":"2026-09-05 18:00:26"} 
[2026-09-05 18:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 18:00:15","page":1} 
[2026-09-05 18:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 17:15:14","window_to":"2026-09-05 18:15:14"} 
[2026-09-05 18:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 18:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 18:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 18:15:14","page":1} 
[2026-09-05 18:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 17:30:16","window_to":"2026-09-05 18:30:16"} 
[2026-09-05 18:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 18:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 18:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 18:30:16","page":1} 
[2026-09-05 18:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 17:45:13","window_to":"2026-09-05 18:45:13"} 
[2026-09-05 18:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 18:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 19:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 18:00:15","window_to":"2026-09-05 19:00:15"} 
[2026-09-05 19:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 18:45:13","page":1} 
[2026-09-05 19:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 19:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 19:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-05 18:00:26","window_to":"2026-09-05 19:00:26"} 
[2026-09-05 19:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 19:00:15","page":1} 
[2026-09-05 19:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 18:15:13","window_to":"2026-09-05 19:15:13"} 
[2026-09-05 19:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 19:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 19:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 19:15:14","page":1} 
[2026-09-05 19:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 18:30:13","window_to":"2026-09-05 19:30:13"} 
[2026-09-05 19:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 19:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 19:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 19:30:13","page":1} 
[2026-09-05 19:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 18:45:12","window_to":"2026-09-05 19:45:12"} 
[2026-09-05 19:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 19:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 20:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 19:45:12","page":1} 
[2026-09-05 20:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 19:00:14","window_to":"2026-09-05 20:00:14"} 
[2026-09-05 20:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 20:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 20:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-05 19:00:24","window_to":"2026-09-05 20:00:24"} 
[2026-09-05 20:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 19:15:11","window_to":"2026-09-05 20:15:11"} 
[2026-09-05 20:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 20:00:13","page":1} 
[2026-09-05 20:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 20:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 20:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 19:30:14","window_to":"2026-09-05 20:30:14"} 
[2026-09-05 20:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 20:15:12","page":1} 
[2026-09-05 20:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 20:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 20:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 20:30:15","page":1} 
[2026-09-05 20:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 19:45:13","window_to":"2026-09-05 20:45:13"} 
[2026-09-05 20:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 20:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 21:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 20:00:15","window_to":"2026-09-05 21:00:15"} 
[2026-09-05 21:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 20:45:13","page":1} 
[2026-09-05 21:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 21:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 21:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-05 20:00:26","window_to":"2026-09-05 21:00:26"} 
[2026-09-05 21:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 21:00:15","page":1} 
[2026-09-05 21:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 20:15:12","window_to":"2026-09-05 21:15:12"} 
[2026-09-05 21:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 21:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 21:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 20:30:14","window_to":"2026-09-05 21:30:14"} 
[2026-09-05 21:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 21:15:12","page":1} 
[2026-09-05 21:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 21:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 21:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 20:45:13","window_to":"2026-09-05 21:45:13"} 
[2026-09-05 21:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 21:30:15","page":1} 
[2026-09-05 21:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 21:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 22:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 21:00:15","window_to":"2026-09-05 22:00:15"} 
[2026-09-05 22:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 21:45:14","page":1} 
[2026-09-05 22:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 22:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 22:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-05 21:00:26","window_to":"2026-09-05 22:00:26"} 
[2026-09-05 22:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 21:15:12","window_to":"2026-09-05 22:15:12"} 
[2026-09-05 22:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 22:00:15","page":1} 
[2026-09-05 22:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 22:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 22:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 21:30:15","window_to":"2026-09-05 22:30:15"} 
[2026-09-05 22:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 22:15:12","page":1} 
[2026-09-05 22:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 22:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 22:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 21:45:13","window_to":"2026-09-05 22:45:13"} 
[2026-09-05 22:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 22:30:16","page":1} 
[2026-09-05 22:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 22:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 23:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 22:00:14","window_to":"2026-09-05 23:00:14"} 
[2026-09-05 23:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 22:45:13","page":1} 
[2026-09-05 23:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 23:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 23:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-05 22:00:24","window_to":"2026-09-05 23:00:25"} 
[2026-09-05 23:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 23:00:14","page":1} 
[2026-09-05 23:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 22:15:11","window_to":"2026-09-05 23:15:12"} 
[2026-09-05 23:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 23:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 23:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 23:15:11","page":1} 
[2026-09-05 23:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 22:30:13","window_to":"2026-09-05 23:30:13"} 
[2026-09-05 23:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 23:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 23:44:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-05 23:45:01] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-05 23:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 23:30:13","page":1} 
[2026-09-05 23:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 22:45:13","window_to":"2026-09-05 23:45:13"} 
[2026-09-05 23:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-05 23:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-05 23:53:28] local.WARNING: Permission route not configured; blocking request {"route":"GET /api/v1/admin/donors","user_id":1,"user_reg_no":"ADM001001","method":"GET","path":"/api/v1/admin/donors"} 
[2026-09-06 00:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 23:00:14","window_to":"2026-09-06 00:00:15"} 
[2026-09-06 00:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-05 23:45:13","page":1} 
[2026-09-06 00:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 00:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 00:00:28] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-05 23:00:28","window_to":"2026-09-06 00:00:28"} 
[2026-09-06 00:00:34] local.INFO: Automated database backup created successfully: backup_2026_09_06_00_00_28.sql  
[2026-09-06 00:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 23:15:12","window_to":"2026-09-06 00:15:12"} 
[2026-09-06 00:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 00:00:15","page":1} 
[2026-09-06 00:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 00:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 00:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 00:15:13","page":1} 
[2026-09-06 00:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 23:30:13","window_to":"2026-09-06 00:30:13"} 
[2026-09-06 00:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 00:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 00:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 00:30:13","page":1} 
[2026-09-06 00:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-05 23:45:12","window_to":"2026-09-06 00:45:12"} 
[2026-09-06 00:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 00:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 01:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 00:45:12","page":1} 
[2026-09-06 01:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 00:00:14","window_to":"2026-09-06 01:00:15"} 
[2026-09-06 01:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 01:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 01:00:29] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-06 00:00:29","window_to":"2026-09-06 01:00:29"} 
[2026-09-06 01:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 00:15:12","window_to":"2026-09-06 01:15:12"} 
[2026-09-06 01:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 01:00:15","page":1} 
[2026-09-06 01:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 01:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 01:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 01:15:13","page":1} 
[2026-09-06 01:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 00:30:13","window_to":"2026-09-06 01:30:14"} 
[2026-09-06 01:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 01:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 01:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 01:30:14","page":1} 
[2026-09-06 01:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 00:45:12","window_to":"2026-09-06 01:45:13"} 
[2026-09-06 01:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 01:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 02:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 01:00:14","window_to":"2026-09-06 02:00:15"} 
[2026-09-06 02:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 01:45:13","page":1} 
[2026-09-06 02:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 02:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 02:00:28] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-06 01:00:28","window_to":"2026-09-06 02:00:28"} 
[2026-09-06 02:00:30] local.INFO: JWT secrets rotated and runtime reloaded {"at":"2026-09-06 02:00:29"} 
[2026-09-06 02:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 01:15:12","window_to":"2026-09-06 02:15:12"} 
[2026-09-06 02:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 02:00:15","page":1} 
[2026-09-06 02:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 02:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 02:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 02:15:12","page":1} 
[2026-09-06 02:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 01:30:14","window_to":"2026-09-06 02:30:14"} 
[2026-09-06 02:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 02:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 02:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 01:45:11","window_to":"2026-09-06 02:45:11"} 
[2026-09-06 02:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 02:30:14","page":1} 
[2026-09-06 02:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 02:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 03:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 02:45:12","page":1} 
[2026-09-06 03:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 02:00:14","window_to":"2026-09-06 03:00:14"} 
[2026-09-06 03:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 03:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 03:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-06 02:00:24","window_to":"2026-09-06 03:00:24"} 
[2026-09-06 03:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 02:15:11","window_to":"2026-09-06 03:15:11"} 
[2026-09-06 03:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 03:00:13","page":1} 
[2026-09-06 03:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 03:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 03:30:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 03:15:12","page":1} 
[2026-09-06 03:30:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 02:30:12","window_to":"2026-09-06 03:30:12"} 
[2026-09-06 03:30:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 03:30:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 03:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 03:30:12","page":1} 
[2026-09-06 03:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 02:45:12","window_to":"2026-09-06 03:45:12"} 
[2026-09-06 03:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 03:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 04:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 03:45:12","page":1} 
[2026-09-06 04:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 03:00:13","window_to":"2026-09-06 04:00:13"} 
[2026-09-06 04:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 04:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 04:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-06 03:00:24","window_to":"2026-09-06 04:00:24"} 
[2026-09-06 04:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 04:00:13","page":1} 
[2026-09-06 04:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 03:15:11","window_to":"2026-09-06 04:15:11"} 
[2026-09-06 04:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 04:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 04:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 03:30:13","window_to":"2026-09-06 04:30:13"} 
[2026-09-06 04:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 04:15:11","page":1} 
[2026-09-06 04:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 04:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 04:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 03:45:11","window_to":"2026-09-06 04:45:11"} 
[2026-09-06 04:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 04:30:13","page":1} 
[2026-09-06 04:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 04:45:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 05:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 04:45:11","page":1} 
[2026-09-06 05:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 04:00:13","window_to":"2026-09-06 05:00:13"} 
[2026-09-06 05:00:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 05:00:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 05:00:23] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-06 04:00:23","window_to":"2026-09-06 05:00:23"} 
[2026-09-06 05:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 04:15:11","window_to":"2026-09-06 05:15:11"} 
[2026-09-06 05:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 05:00:12","page":1} 
[2026-09-06 05:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 05:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 05:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 04:30:16","window_to":"2026-09-06 05:30:16"} 
[2026-09-06 05:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 05:15:11","page":1} 
[2026-09-06 05:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 05:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 05:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 04:45:11","window_to":"2026-09-06 05:45:11"} 
[2026-09-06 05:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 05:30:16","page":1} 
[2026-09-06 05:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 05:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 06:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 05:00:13","window_to":"2026-09-06 06:00:13"} 
[2026-09-06 06:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 05:45:12","page":1} 
[2026-09-06 06:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 06:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 06:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-06 05:00:25","window_to":"2026-09-06 06:00:25"} 
[2026-09-06 06:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 06:00:14","page":1} 
[2026-09-06 06:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 05:15:13","window_to":"2026-09-06 06:15:13"} 
[2026-09-06 06:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 06:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 06:30:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 05:30:12","window_to":"2026-09-06 06:30:12"} 
[2026-09-06 06:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 06:15:13","page":1} 
[2026-09-06 06:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 06:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 06:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 05:45:11","window_to":"2026-09-06 06:45:11"} 
[2026-09-06 06:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 06:30:13","page":1} 
[2026-09-06 06:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 06:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 07:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 06:00:13","window_to":"2026-09-06 07:00:13"} 
[2026-09-06 07:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 06:45:11","page":1} 
[2026-09-06 07:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 07:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 07:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-06 06:00:25","window_to":"2026-09-06 07:00:25"} 
[2026-09-06 07:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 07:00:14","page":1} 
[2026-09-06 07:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 06:15:13","window_to":"2026-09-06 07:15:13"} 
[2026-09-06 07:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 07:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 07:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 07:15:13","page":1} 
[2026-09-06 07:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 06:30:13","window_to":"2026-09-06 07:30:13"} 
[2026-09-06 07:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 07:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 07:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 07:30:14","page":1} 
[2026-09-06 07:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 06:45:11","window_to":"2026-09-06 07:45:11"} 
[2026-09-06 07:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 07:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 08:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 07:45:12","page":1} 
[2026-09-06 08:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 07:00:13","window_to":"2026-09-06 08:00:14"} 
[2026-09-06 08:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 08:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 08:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-06 07:00:26","window_to":"2026-09-06 08:00:26"} 
[2026-09-06 08:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 07:15:11","window_to":"2026-09-06 08:15:11"} 
[2026-09-06 08:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 08:00:14","page":1} 
[2026-09-06 08:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 08:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 08:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 07:30:14","window_to":"2026-09-06 08:30:14"} 
[2026-09-06 08:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 08:15:12","page":1} 
[2026-09-06 08:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 08:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 08:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 07:45:12","window_to":"2026-09-06 08:45:12"} 
[2026-09-06 08:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 08:30:15","page":1} 
[2026-09-06 08:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 08:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 09:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 08:45:12","page":1} 
[2026-09-06 09:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 08:00:14","window_to":"2026-09-06 09:00:15"} 
[2026-09-06 09:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 09:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 09:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-06 08:00:25","window_to":"2026-09-06 09:00:25"} 
[2026-09-06 09:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 09:00:14","page":1} 
[2026-09-06 09:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 08:15:11","window_to":"2026-09-06 09:15:11"} 
[2026-09-06 09:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 09:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 09:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 09:15:11","page":1} 
[2026-09-06 09:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 08:30:14","window_to":"2026-09-06 09:30:14"} 
[2026-09-06 09:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 09:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 09:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 09:30:14","page":1} 
[2026-09-06 09:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 08:45:12","window_to":"2026-09-06 09:45:13"} 
[2026-09-06 09:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 09:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 10:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 09:45:13","page":1} 
[2026-09-06 10:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 09:00:14","window_to":"2026-09-06 10:00:14"} 
[2026-09-06 10:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 10:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 10:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-06 09:00:25","window_to":"2026-09-06 10:00:25"} 
[2026-09-06 10:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 10:00:14","page":1} 
[2026-09-06 10:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 09:15:11","window_to":"2026-09-06 10:15:11"} 
[2026-09-06 10:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 10:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 10:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 10:15:11","page":1} 
[2026-09-06 10:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 09:30:14","window_to":"2026-09-06 10:30:14"} 
[2026-09-06 10:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 10:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 10:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 10:30:14","page":1} 
[2026-09-06 10:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 09:45:13","window_to":"2026-09-06 10:45:14"} 
[2026-09-06 10:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 10:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 11:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 10:45:13","page":1} 
[2026-09-06 11:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 10:00:17","window_to":"2026-09-06 11:00:17"} 
[2026-09-06 11:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 11:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 11:00:32] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-06 10:00:32","window_to":"2026-09-06 11:00:32"} 
[2026-09-06 11:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 10:15:14","window_to":"2026-09-06 11:15:14"} 
[2026-09-06 11:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 11:00:17","page":1} 
[2026-09-06 11:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 11:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 11:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 11:15:14","page":1} 
[2026-09-06 11:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 10:30:14","window_to":"2026-09-06 11:30:14"} 
[2026-09-06 11:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 11:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 11:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 10:45:13","window_to":"2026-09-06 11:45:13"} 
[2026-09-06 11:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 11:30:14","page":1} 
[2026-09-06 11:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 11:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 12:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 11:00:15","window_to":"2026-09-06 12:00:16"} 
[2026-09-06 12:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 11:45:13","page":1} 
[2026-09-06 12:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 12:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 12:00:30] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-06 11:00:29","window_to":"2026-09-06 12:00:29"} 
[2026-09-06 12:00:34] local.INFO: Automated database backup created successfully: backup_2026_09_06_12_00_29.sql  
[2026-09-06 12:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 12:00:16","page":1} 
[2026-09-06 12:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 11:15:12","window_to":"2026-09-06 12:15:12"} 
[2026-09-06 12:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 12:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 12:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 12:15:12","page":1} 
[2026-09-06 12:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 11:30:13","window_to":"2026-09-06 12:30:13"} 
[2026-09-06 12:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 12:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 12:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 12:30:13","page":1} 
[2026-09-06 12:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 11:45:11","window_to":"2026-09-06 12:45:11"} 
[2026-09-06 12:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 12:45:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 13:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 12:00:13","window_to":"2026-09-06 13:00:13"} 
[2026-09-06 13:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 12:45:11","page":1} 
[2026-09-06 13:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 13:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 13:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-06 12:00:25","window_to":"2026-09-06 13:00:25"} 
[2026-09-06 13:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 12:15:11","window_to":"2026-09-06 13:15:11"} 
[2026-09-06 13:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 13:00:14","page":1} 
[2026-09-06 13:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 13:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 13:30:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 12:30:11","window_to":"2026-09-06 13:30:12"} 
[2026-09-06 13:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 13:15:12","page":1} 
[2026-09-06 13:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 13:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 13:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 12:45:12","window_to":"2026-09-06 13:45:12"} 
[2026-09-06 13:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 13:30:13","page":1} 
[2026-09-06 13:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 13:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 14:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 13:45:12","page":1} 
[2026-09-06 14:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 13:00:14","window_to":"2026-09-06 14:00:15"} 
[2026-09-06 14:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 14:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 14:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-06 13:00:27","window_to":"2026-09-06 14:00:27"} 
[2026-09-06 14:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 14:00:14","page":1} 
[2026-09-06 14:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 13:15:12","window_to":"2026-09-06 14:15:12"} 
[2026-09-06 14:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 14:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 14:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 14:15:12","page":1} 
[2026-09-06 14:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 13:30:12","window_to":"2026-09-06 14:30:13"} 
[2026-09-06 14:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 14:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 14:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 13:45:11","window_to":"2026-09-06 14:45:11"} 
[2026-09-06 14:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 14:30:12","page":1} 
[2026-09-06 14:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 14:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 15:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 14:00:13","window_to":"2026-09-06 15:00:13"} 
[2026-09-06 15:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 14:45:11","page":1} 
[2026-09-06 15:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 15:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 15:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-06 14:00:25","window_to":"2026-09-06 15:00:25"} 
[2026-09-06 15:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 14:15:13","window_to":"2026-09-06 15:15:13"} 
[2026-09-06 15:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 15:00:13","page":1} 
[2026-09-06 15:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 15:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 15:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 15:15:14","page":1} 
[2026-09-06 15:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 14:30:14","window_to":"2026-09-06 15:30:14"} 
[2026-09-06 15:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 15:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 15:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 14:45:12","window_to":"2026-09-06 15:45:12"} 
[2026-09-06 15:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 15:30:14","page":1} 
[2026-09-06 15:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 15:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 16:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 15:45:12","page":1} 
[2026-09-06 16:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 15:00:13","window_to":"2026-09-06 16:00:13"} 
[2026-09-06 16:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 16:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 16:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-06 15:00:24","window_to":"2026-09-06 16:00:24"} 
[2026-09-06 16:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 15:15:11","window_to":"2026-09-06 16:15:11"} 
[2026-09-06 16:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 16:00:13","page":1} 
[2026-09-06 16:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 16:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 16:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 16:15:12","page":1} 
[2026-09-06 16:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 15:30:13","window_to":"2026-09-06 16:30:13"} 
[2026-09-06 16:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 16:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 16:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 16:30:13","page":1} 
[2026-09-06 16:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 15:45:12","window_to":"2026-09-06 16:45:12"} 
[2026-09-06 16:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 16:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 17:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 16:45:11","page":1} 
[2026-09-06 17:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 16:00:13","window_to":"2026-09-06 17:00:13"} 
[2026-09-06 17:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 17:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 17:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-06 16:00:25","window_to":"2026-09-06 17:00:25"} 
[2026-09-06 17:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 16:15:14","window_to":"2026-09-06 17:15:14"} 
[2026-09-06 17:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 17:00:14","page":1} 
[2026-09-06 17:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 17:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 17:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 16:30:14","window_to":"2026-09-06 17:30:14"} 
[2026-09-06 17:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 17:15:15","page":1} 
[2026-09-06 17:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 17:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 17:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 16:45:13","window_to":"2026-09-06 17:45:13"} 
[2026-09-06 17:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 17:30:15","page":1} 
[2026-09-06 17:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 17:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 18:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 17:00:16","window_to":"2026-09-06 18:00:16"} 
[2026-09-06 18:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 17:45:13","page":1} 
[2026-09-06 18:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 18:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 18:00:30] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-06 17:00:30","window_to":"2026-09-06 18:00:30"} 
[2026-09-06 18:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 17:15:13","window_to":"2026-09-06 18:15:14"} 
[2026-09-06 18:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 18:00:17","page":1} 
[2026-09-06 18:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 18:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 18:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 17:30:13","window_to":"2026-09-06 18:30:13"} 
[2026-09-06 18:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 18:15:14","page":1} 
[2026-09-06 18:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 18:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 18:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 17:45:12","window_to":"2026-09-06 18:45:12"} 
[2026-09-06 18:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 18:30:14","page":1} 
[2026-09-06 18:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 18:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 19:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 18:00:13","window_to":"2026-09-06 19:00:14"} 
[2026-09-06 19:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 18:45:12","page":1} 
[2026-09-06 19:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 19:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 19:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-06 18:00:24","window_to":"2026-09-06 19:00:24"} 
[2026-09-06 19:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 19:00:14","page":1} 
[2026-09-06 19:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 18:15:11","window_to":"2026-09-06 19:15:12"} 
[2026-09-06 19:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 19:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 19:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 19:15:12","page":1} 
[2026-09-06 19:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 18:30:14","window_to":"2026-09-06 19:30:14"} 
[2026-09-06 19:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 19:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 19:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 19:30:14","page":1} 
[2026-09-06 19:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 18:45:11","window_to":"2026-09-06 19:45:11"} 
[2026-09-06 19:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 19:45:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 20:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 19:00:14","window_to":"2026-09-06 20:00:14"} 
[2026-09-06 20:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 19:45:11","page":1} 
[2026-09-06 20:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 20:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 20:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-06 19:00:25","window_to":"2026-09-06 20:00:25"} 
[2026-09-06 20:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 20:00:14","page":1} 
[2026-09-06 20:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 19:15:13","window_to":"2026-09-06 20:15:13"} 
[2026-09-06 20:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 20:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 20:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 20:15:12","page":1} 
[2026-09-06 20:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 19:30:14","window_to":"2026-09-06 20:30:14"} 
[2026-09-06 20:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 20:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 20:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 19:45:13","window_to":"2026-09-06 20:45:13"} 
[2026-09-06 20:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 20:30:14","page":1} 
[2026-09-06 20:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 20:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 21:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 20:00:15","window_to":"2026-09-06 21:00:15"} 
[2026-09-06 21:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 20:45:13","page":1} 
[2026-09-06 21:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 21:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 21:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-06 20:00:27","window_to":"2026-09-06 21:00:27"} 
[2026-09-06 21:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 21:00:15","page":1} 
[2026-09-06 21:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 20:15:12","window_to":"2026-09-06 21:15:12"} 
[2026-09-06 21:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 21:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 21:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 20:30:14","window_to":"2026-09-06 21:30:14"} 
[2026-09-06 21:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 21:15:12","page":1} 
[2026-09-06 21:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 21:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 21:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 20:45:12","window_to":"2026-09-06 21:45:13"} 
[2026-09-06 21:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 21:30:15","page":1} 
[2026-09-06 21:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 21:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 22:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 21:00:14","window_to":"2026-09-06 22:00:14"} 
[2026-09-06 22:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 21:45:13","page":1} 
[2026-09-06 22:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 22:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 22:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-06 21:00:26","window_to":"2026-09-06 22:00:26"} 
[2026-09-06 22:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 22:00:15","page":1} 
[2026-09-06 22:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 21:15:13","window_to":"2026-09-06 22:15:13"} 
[2026-09-06 22:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 22:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 22:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 21:30:14","window_to":"2026-09-06 22:30:14"} 
[2026-09-06 22:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 22:15:13","page":1} 
[2026-09-06 22:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 22:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 22:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 22:30:15","page":1} 
[2026-09-06 22:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 21:45:13","window_to":"2026-09-06 22:45:13"} 
[2026-09-06 22:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 22:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 23:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 22:00:13","window_to":"2026-09-06 23:00:13"} 
[2026-09-06 23:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 22:45:13","page":1} 
[2026-09-06 23:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 23:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 23:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-06 22:00:25","window_to":"2026-09-06 23:00:25"} 
[2026-09-06 23:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 22:15:12","window_to":"2026-09-06 23:15:12"} 
[2026-09-06 23:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 23:00:14","page":1} 
[2026-09-06 23:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 23:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 23:30:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 23:15:12","page":1} 
[2026-09-06 23:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 22:30:13","window_to":"2026-09-06 23:30:13"} 
[2026-09-06 23:30:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 23:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-06 23:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 22:45:12","window_to":"2026-09-06 23:45:12"} 
[2026-09-06 23:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 23:30:12","page":1} 
[2026-09-06 23:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-06 23:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 00:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 23:00:13","window_to":"2026-09-07 00:00:13"} 
[2026-09-07 00:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-06 23:45:12","page":1} 
[2026-09-07 00:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 00:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 00:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-06 23:00:26","window_to":"2026-09-07 00:00:26"} 
[2026-09-07 00:00:32] local.INFO: Automated database backup created successfully: backup_2026_09_07_00_00_27.sql  
[2026-09-07 00:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 23:15:11","window_to":"2026-09-07 00:15:11"} 
[2026-09-07 00:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 00:00:14","page":1} 
[2026-09-07 00:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 00:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 00:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 23:30:13","window_to":"2026-09-07 00:30:13"} 
[2026-09-07 00:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 00:15:12","page":1} 
[2026-09-07 00:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 00:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 00:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-06 23:45:11","window_to":"2026-09-07 00:45:11"} 
[2026-09-07 00:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 00:30:13","page":1} 
[2026-09-07 00:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 00:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 01:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 00:45:12","page":1} 
[2026-09-07 01:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 00:00:13","window_to":"2026-09-07 01:00:13"} 
[2026-09-07 01:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 01:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 01:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-07 00:00:25","window_to":"2026-09-07 01:00:25"} 
[2026-09-07 01:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 00:15:11","window_to":"2026-09-07 01:15:12"} 
[2026-09-07 01:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 01:00:13","page":1} 
[2026-09-07 01:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 01:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 01:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 00:30:13","window_to":"2026-09-07 01:30:13"} 
[2026-09-07 01:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 01:15:12","page":1} 
[2026-09-07 01:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 01:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 01:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 00:45:11","window_to":"2026-09-07 01:45:11"} 
[2026-09-07 01:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 01:30:14","page":1} 
[2026-09-07 01:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 01:45:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 02:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 01:45:11","page":1} 
[2026-09-07 02:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 01:00:14","window_to":"2026-09-07 02:00:14"} 
[2026-09-07 02:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 02:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 02:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-07 01:00:25","window_to":"2026-09-07 02:00:25"} 
[2026-09-07 02:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 01:15:10","window_to":"2026-09-07 02:15:10"} 
[2026-09-07 02:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 02:00:14","page":1} 
[2026-09-07 02:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 02:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 02:30:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 02:15:11","page":1} 
[2026-09-07 02:30:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 01:30:12","window_to":"2026-09-07 02:30:12"} 
[2026-09-07 02:30:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 02:30:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 02:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 02:30:11","page":1} 
[2026-09-07 02:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 01:45:11","window_to":"2026-09-07 02:45:11"} 
[2026-09-07 02:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 02:45:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 03:00:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 02:00:11","window_to":"2026-09-07 03:00:11"} 
[2026-09-07 03:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 02:45:11","page":1} 
[2026-09-07 03:00:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 03:00:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 03:00:22] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-07 02:00:21","window_to":"2026-09-07 03:00:21"} 
[2026-09-07 03:15:10] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 02:15:10","window_to":"2026-09-07 03:15:10"} 
[2026-09-07 03:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 03:00:12","page":1} 
[2026-09-07 03:15:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 03:15:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 03:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 02:30:13","window_to":"2026-09-07 03:30:13"} 
[2026-09-07 03:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 03:15:10","page":1} 
[2026-09-07 03:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 03:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 03:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 02:45:11","window_to":"2026-09-07 03:45:11"} 
[2026-09-07 03:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 03:30:13","page":1} 
[2026-09-07 03:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 03:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 04:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 03:45:11","page":1} 
[2026-09-07 04:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 03:00:13","window_to":"2026-09-07 04:00:13"} 
[2026-09-07 04:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 04:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 04:00:23] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-07 03:00:23","window_to":"2026-09-07 04:00:23"} 
[2026-09-07 04:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 04:00:13","page":1} 
[2026-09-07 04:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 03:15:11","window_to":"2026-09-07 04:15:11"} 
[2026-09-07 04:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 04:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 04:30:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 03:30:11","window_to":"2026-09-07 04:30:12"} 
[2026-09-07 04:30:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 04:15:11","page":1} 
[2026-09-07 04:30:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 04:30:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 04:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 04:30:12","page":1} 
[2026-09-07 04:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 03:45:11","window_to":"2026-09-07 04:45:11"} 
[2026-09-07 04:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 04:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 05:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 04:45:11","page":1} 
[2026-09-07 05:00:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 04:00:12","window_to":"2026-09-07 05:00:12"} 
[2026-09-07 05:00:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 05:00:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 05:00:23] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-07 04:00:22","window_to":"2026-09-07 05:00:23"} 
[2026-09-07 05:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 04:15:10","window_to":"2026-09-07 05:15:10"} 
[2026-09-07 05:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 05:00:12","page":1} 
[2026-09-07 05:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 05:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 05:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 05:15:12","page":1} 
[2026-09-07 05:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 04:30:15","window_to":"2026-09-07 05:30:15"} 
[2026-09-07 05:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 05:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 05:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 05:30:16","page":1} 
[2026-09-07 05:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 04:45:12","window_to":"2026-09-07 05:45:12"} 
[2026-09-07 05:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 05:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 06:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 05:45:11","page":1} 
[2026-09-07 06:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 05:00:13","window_to":"2026-09-07 06:00:13"} 
[2026-09-07 06:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 06:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 06:00:23] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-07 05:00:23","window_to":"2026-09-07 06:00:23"} 
[2026-09-07 06:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 06:00:13","page":1} 
[2026-09-07 06:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 05:15:11","window_to":"2026-09-07 06:15:11"} 
[2026-09-07 06:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 06:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 06:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 05:30:13","window_to":"2026-09-07 06:30:13"} 
[2026-09-07 06:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 06:15:11","page":1} 
[2026-09-07 06:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 06:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 06:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 05:45:12","window_to":"2026-09-07 06:45:12"} 
[2026-09-07 06:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 06:30:13","page":1} 
[2026-09-07 06:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 06:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 07:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 06:45:12","page":1} 
[2026-09-07 07:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 06:00:13","window_to":"2026-09-07 07:00:14"} 
[2026-09-07 07:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 07:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 07:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-07 06:00:25","window_to":"2026-09-07 07:00:25"} 
[2026-09-07 07:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 07:00:14","page":1} 
[2026-09-07 07:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 06:15:12","window_to":"2026-09-07 07:15:12"} 
[2026-09-07 07:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 07:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 07:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 07:15:12","page":1} 
[2026-09-07 07:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 06:30:13","window_to":"2026-09-07 07:30:13"} 
[2026-09-07 07:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 07:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 07:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 06:45:12","window_to":"2026-09-07 07:45:12"} 
[2026-09-07 07:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 07:30:13","page":1} 
[2026-09-07 07:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 07:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 08:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 07:00:14","window_to":"2026-09-07 08:00:14"} 
[2026-09-07 08:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 07:45:12","page":1} 
[2026-09-07 08:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 08:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 08:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-07 07:00:27","window_to":"2026-09-07 08:00:27"} 
[2026-09-07 08:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 07:15:11","window_to":"2026-09-07 08:15:11"} 
[2026-09-07 08:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 08:00:15","page":1} 
[2026-09-07 08:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 08:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 08:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 07:30:15","window_to":"2026-09-07 08:30:15"} 
[2026-09-07 08:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 08:15:12","page":1} 
[2026-09-07 08:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 08:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 08:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 07:45:11","window_to":"2026-09-07 08:45:11"} 
[2026-09-07 08:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 08:30:15","page":1} 
[2026-09-07 08:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 08:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 09:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 08:00:15","window_to":"2026-09-07 09:00:15"} 
[2026-09-07 09:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 08:45:12","page":1} 
[2026-09-07 09:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 09:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 09:00:30] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-07 08:00:29","window_to":"2026-09-07 09:00:29"} 
[2026-09-07 09:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 08:15:13","window_to":"2026-09-07 09:15:13"} 
[2026-09-07 09:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 09:00:16","page":1} 
[2026-09-07 09:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 09:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 09:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 08:30:14","window_to":"2026-09-07 09:30:14"} 
[2026-09-07 09:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 09:15:13","page":1} 
[2026-09-07 09:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 09:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 09:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 09:30:15","page":1} 
[2026-09-07 09:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 08:45:14","window_to":"2026-09-07 09:45:14"} 
[2026-09-07 09:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 09:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 10:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 09:00:16","window_to":"2026-09-07 10:00:17"} 
[2026-09-07 10:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 09:45:14","page":1} 
[2026-09-07 10:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 10:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 10:00:29] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-07 09:00:29","window_to":"2026-09-07 10:00:29"} 
[2026-09-07 10:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 09:15:12","window_to":"2026-09-07 10:15:12"} 
[2026-09-07 10:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 10:00:17","page":1} 
[2026-09-07 10:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 10:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 10:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 09:30:16","window_to":"2026-09-07 10:30:16"} 
[2026-09-07 10:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 10:15:13","page":1} 
[2026-09-07 10:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 10:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 10:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 09:45:13","window_to":"2026-09-07 10:45:14"} 
[2026-09-07 10:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 10:30:16","page":1} 
[2026-09-07 10:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 10:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 10:53:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 10:53:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 11:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 10:00:17","window_to":"2026-09-07 11:00:17"} 
[2026-09-07 11:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 10:45:14","page":1} 
[2026-09-07 11:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 11:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 11:00:30] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-07 10:00:30","window_to":"2026-09-07 11:00:30"} 
[2026-09-07 11:07:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 11:07:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 11:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 10:15:14","window_to":"2026-09-07 11:15:14"} 
[2026-09-07 11:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 11:00:18","page":1} 
[2026-09-07 11:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 11:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 11:17:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 11:17:43] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 11:17:43] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/adms","user_id":3,"user_reg_no":"STF001001","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-07 11:18:43] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/adms","user_id":3,"user_reg_no":"STF001001","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-07 11:18:52] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/adms","user_id":3,"user_reg_no":"STF001001","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-07 11:19:51] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/adms","user_id":3,"user_reg_no":"STF001001","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-07 11:20:05] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/adms","user_id":3,"user_reg_no":"STF001001","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-07 11:20:10] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/adms","user_id":3,"user_reg_no":"STF001001","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-07 11:21:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 11:21:29] local.WARNING: Firestore not initialized  
[2026-09-07 11:21:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 11:21:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 11:21:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 11:21:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 11:21:32] local.WARNING: Firestore not initialized  
[2026-09-07 11:21:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 11:21:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 11:21:47] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 11:21:50] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 11:21:50] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 11:22:54] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/adms","user_id":3,"user_reg_no":"STF001001","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-07 11:27:17] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/adms","user_id":3,"user_reg_no":"STF001001","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-07 11:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 11:15:15","page":1} 
[2026-09-07 11:30:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 10:30:21","window_to":"2026-09-07 11:30:21"} 
[2026-09-07 11:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 11:30:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 11:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 11:30:20","page":1} 
[2026-09-07 11:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 10:45:17","window_to":"2026-09-07 11:45:18"} 
[2026-09-07 11:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 11:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 12:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 11:45:17","page":1} 
[2026-09-07 12:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 11:00:16","window_to":"2026-09-07 12:00:16"} 
[2026-09-07 12:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 12:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 12:00:32] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-07 11:00:32","window_to":"2026-09-07 12:00:32"} 
[2026-09-07 12:00:37] local.INFO: Automated database backup created successfully: backup_2026_09_07_12_00_32.sql  
[2026-09-07 12:12:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 12:12:06] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 12:12:06] local.WARNING: Firestore not initialized  
[2026-09-07 12:12:07] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 12:12:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 12:12:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 12:12:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 12:12:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 12:12:50] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 12:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 11:15:14","window_to":"2026-09-07 12:15:14"} 
[2026-09-07 12:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 12:00:16","page":1} 
[2026-09-07 12:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 12:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 12:16:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 12:16:18] local.INFO: No FCM tokens found for user {"notification_id":5,"user_id":3} 
[2026-09-07 12:16:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 12:16:18] local.INFO: No FCM tokens found for user {"notification_id":6,"user_id":2} 
[2026-09-07 12:16:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 12:16:18] local.INFO: No FCM tokens found for user {"notification_id":7,"user_id":1} 
[2026-09-07 12:21:33] local.INFO: Registration Number Generation {"useBatchCode":false,"batchId":1,"env_value":null} 
[2026-09-07 12:21:33] local.ERROR: No fee plan found for batch ID: 1. Fee plan assignment is required for student enrollment. {"batch_id":1,"enrollments_id":1,"student_id":1} 
[2026-09-07 12:21:33] local.ERROR: Fee plan assignment failed {"enrollments_id":1,"batch_id":1,"error_message":"No fee plan found for batch ID: 1. Fee plan assignment is required for student enrollment.","error_trace":"#0 /var/www/html/api_loyala_backend/app/Http/Controllers/Api/V1/Admin/UserController.php(1249): App\\Http\\Controllers\\Api\\V1\\Admin\\UserController->assignStudentFeePlan()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): App\\Http\\Controllers\\Api\\V1\\Admin\\UserController->registerOffline()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\\Routing\\Route->runController()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\\Routing\\Route->run()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}()
#6 /var/www/html/api_loyala_backend/app/Http/Middleware/CacheApiResponses.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CacheApiResponses->handle()
#8 /var/www/html/api_loyala_backend/app/Http/Middleware/InvalidateApiCache.php(20): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\InvalidateApiCache->handle()
#10 /var/www/html/api_loyala_backend/app/Http/Middleware/RoutePermissionMiddleware.php(88): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\RoutePermissionMiddleware->handle()
#12 /var/www/html/api_loyala_backend/vendor/tymon/jwt-auth/src/Http/Middleware/Authenticate.php(32): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Tymon\\JWTAuth\\Http\\Middleware\\Authenticate->handle()
#14 /var/www/html/api_loyala_backend/app/Http/Middleware/GzipMiddleware.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\GzipMiddleware->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#18 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(25): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#49 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#50 {main}"} 
[2026-09-07 12:21:33] local.INFO: Transaction rolled back successfully  
[2026-09-07 12:21:33] local.ERROR: Student registration failed {"error":"Fee plan assignment failed: No fee plan found for batch ID: 1. Fee plan assignment is required for student enrollment.","trace":"#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): App\\Http\\Controllers\\Api\\V1\\Admin\\UserController->registerOffline()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\\Routing\\Route->runController()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\\Routing\\Route->run()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}()
#5 /var/www/html/api_loyala_backend/app/Http/Middleware/CacheApiResponses.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CacheApiResponses->handle()
#7 /var/www/html/api_loyala_backend/app/Http/Middleware/InvalidateApiCache.php(20): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\InvalidateApiCache->handle()
#9 /var/www/html/api_loyala_backend/app/Http/Middleware/RoutePermissionMiddleware.php(88): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\RoutePermissionMiddleware->handle()
#11 /var/www/html/api_loyala_backend/vendor/tymon/jwt-auth/src/Http/Middleware/Authenticate.php(32): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Tymon\\JWTAuth\\Http\\Middleware\\Authenticate->handle()
#13 /var/www/html/api_loyala_backend/app/Http/Middleware/GzipMiddleware.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\GzipMiddleware->handle()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#17 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(25): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#48 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#49 {main}","request_data":{"full_name":"MARLIN DILSHA FRANCIS XAVIER","email":"marlindilsha@gmail.com","phone":"0742082380","whtsapp_num":null,"emergency_phone":"0778218446","nic_passport":"200750701367","dob":"2007-07-01","gender":"female","address":"Chundikuli,Murunkan","marital_status":"single","admission_date":"2026-08-28","country":"sri_lanka","district":"mannar","guardian_select":"father","guardian_name":"Francis Xavier","guardian_phone":"778218446","guardian_email":null,"guardian_address":"Chundikuli,Murunkan","branch":1,"faculty_id":2,"program_category":6,"program_id":12,"batch_id":1,"education_level":"a_level_completed","occupation":"student","occupation_place_name":"Mn/Murunkan C.C","know_from":"social_media","note":null,"status":"active","reg_type":"offline"}} 
[2026-09-07 12:21:55] local.INFO: Registration Number Generation {"useBatchCode":false,"batchId":1,"env_value":null} 
[2026-09-07 12:21:55] local.ERROR: No fee plan found for batch ID: 1. Fee plan assignment is required for student enrollment. {"batch_id":1,"enrollments_id":2,"student_id":2} 
[2026-09-07 12:21:55] local.ERROR: Fee plan assignment failed {"enrollments_id":2,"batch_id":1,"error_message":"No fee plan found for batch ID: 1. Fee plan assignment is required for student enrollment.","error_trace":"#0 /var/www/html/api_loyala_backend/app/Http/Controllers/Api/V1/Admin/UserController.php(1249): App\\Http\\Controllers\\Api\\V1\\Admin\\UserController->assignStudentFeePlan()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): App\\Http\\Controllers\\Api\\V1\\Admin\\UserController->registerOffline()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\\Routing\\Route->runController()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\\Routing\\Route->run()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}()
#6 /var/www/html/api_loyala_backend/app/Http/Middleware/CacheApiResponses.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CacheApiResponses->handle()
#8 /var/www/html/api_loyala_backend/app/Http/Middleware/InvalidateApiCache.php(20): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\InvalidateApiCache->handle()
#10 /var/www/html/api_loyala_backend/app/Http/Middleware/RoutePermissionMiddleware.php(88): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\RoutePermissionMiddleware->handle()
#12 /var/www/html/api_loyala_backend/vendor/tymon/jwt-auth/src/Http/Middleware/Authenticate.php(32): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Tymon\\JWTAuth\\Http\\Middleware\\Authenticate->handle()
#14 /var/www/html/api_loyala_backend/app/Http/Middleware/GzipMiddleware.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\GzipMiddleware->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#18 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(25): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#49 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#50 {main}"} 
[2026-09-07 12:21:55] local.INFO: Transaction rolled back successfully  
[2026-09-07 12:21:55] local.ERROR: Student registration failed {"error":"Fee plan assignment failed: No fee plan found for batch ID: 1. Fee plan assignment is required for student enrollment.","trace":"#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): App\\Http\\Controllers\\Api\\V1\\Admin\\UserController->registerOffline()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\\Routing\\Route->runController()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\\Routing\\Route->run()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}()
#5 /var/www/html/api_loyala_backend/app/Http/Middleware/CacheApiResponses.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CacheApiResponses->handle()
#7 /var/www/html/api_loyala_backend/app/Http/Middleware/InvalidateApiCache.php(20): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\InvalidateApiCache->handle()
#9 /var/www/html/api_loyala_backend/app/Http/Middleware/RoutePermissionMiddleware.php(88): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\RoutePermissionMiddleware->handle()
#11 /var/www/html/api_loyala_backend/vendor/tymon/jwt-auth/src/Http/Middleware/Authenticate.php(32): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Tymon\\JWTAuth\\Http\\Middleware\\Authenticate->handle()
#13 /var/www/html/api_loyala_backend/app/Http/Middleware/GzipMiddleware.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\GzipMiddleware->handle()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#17 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(25): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#48 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#49 {main}","request_data":{"full_name":"MARLIN DILSHA FRANCIS XAVIER","email":"marlindilsha@gmail.com","phone":"0742082380","whtsapp_num":null,"emergency_phone":"0778218446","nic_passport":"200750701367","dob":"2007-07-01","gender":"female","address":"Chundikuli,Murunkan","marital_status":"single","admission_date":"2026-08-28","country":"sri_lanka","district":"mannar","guardian_select":"father","guardian_name":"Francis Xavier","guardian_phone":"778218446","guardian_email":null,"guardian_address":"Chundikuli,Murunkan","branch":1,"faculty_id":2,"program_category":6,"program_id":12,"batch_id":1,"education_level":"a_level_completed","occupation":"student","occupation_place_name":"Mn/Murunkan C.C","know_from":"social_media","note":null,"status":"active","reg_type":"offline"}} 
[2026-09-07 12:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 11:30:15","window_to":"2026-09-07 12:30:15"} 
[2026-09-07 12:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 12:15:15","page":1} 
[2026-09-07 12:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 12:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 12:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 12:30:16","page":1} 
[2026-09-07 12:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 11:45:16","window_to":"2026-09-07 12:45:16"} 
[2026-09-07 12:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 12:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 13:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 12:45:16","page":1} 
[2026-09-07 13:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 12:00:16","window_to":"2026-09-07 13:00:16"} 
[2026-09-07 13:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 13:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 13:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-07 12:00:26","window_to":"2026-09-07 13:00:27"} 
[2026-09-07 13:12:50] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 13:12:50] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 13:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 12:15:12","window_to":"2026-09-07 13:15:13"} 
[2026-09-07 13:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 13:00:15","page":1} 
[2026-09-07 13:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 13:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 13:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 13:15:13","page":1} 
[2026-09-07 13:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 12:30:16","window_to":"2026-09-07 13:30:16"} 
[2026-09-07 13:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 13:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 13:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 12:45:11","window_to":"2026-09-07 13:45:11"} 
[2026-09-07 13:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 13:30:16","page":1} 
[2026-09-07 13:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 13:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 14:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 13:00:15","window_to":"2026-09-07 14:00:16"} 
[2026-09-07 14:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 13:45:12","page":1} 
[2026-09-07 14:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 14:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 14:00:28] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-07 13:00:28","window_to":"2026-09-07 14:00:28"} 
[2026-09-07 14:13:03] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 14:13:03] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 14:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 14:00:17","page":1} 
[2026-09-07 14:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 13:15:14","window_to":"2026-09-07 14:15:14"} 
[2026-09-07 14:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 14:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 14:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 13:30:14","window_to":"2026-09-07 14:30:14"} 
[2026-09-07 14:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 14:15:13","page":1} 
[2026-09-07 14:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 14:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 14:36:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 14:36:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 14:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 13:45:13","window_to":"2026-09-07 14:45:13"} 
[2026-09-07 14:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 14:30:15","page":1} 
[2026-09-07 14:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 14:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 15:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 14:45:13","page":1} 
[2026-09-07 15:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 14:00:17","window_to":"2026-09-07 15:00:17"} 
[2026-09-07 15:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 15:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 15:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-07 14:00:27","window_to":"2026-09-07 15:00:27"} 
[2026-09-07 15:14:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 15:14:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 15:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 15:00:16","page":1} 
[2026-09-07 15:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 14:15:13","window_to":"2026-09-07 15:15:13"} 
[2026-09-07 15:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 15:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 15:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 14:30:15","window_to":"2026-09-07 15:30:15"} 
[2026-09-07 15:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 15:15:13","page":1} 
[2026-09-07 15:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 15:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 15:37:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 15:37:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 15:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 15:30:15","page":1} 
[2026-09-07 15:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 14:45:12","window_to":"2026-09-07 15:45:13"} 
[2026-09-07 15:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 15:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 16:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 15:00:13","window_to":"2026-09-07 16:00:14"} 
[2026-09-07 16:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 15:45:13","page":1} 
[2026-09-07 16:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 16:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 16:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-07 15:00:25","window_to":"2026-09-07 16:00:25"} 
[2026-09-07 16:14:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 16:14:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 16:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 16:00:14","page":1} 
[2026-09-07 16:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 15:15:12","window_to":"2026-09-07 16:15:12"} 
[2026-09-07 16:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 16:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 16:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 16:15:12","page":1} 
[2026-09-07 16:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 15:30:15","window_to":"2026-09-07 16:30:15"} 
[2026-09-07 16:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 16:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 16:37:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 16:37:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-07 16:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 15:45:13","window_to":"2026-09-07 16:45:13"} 
[2026-09-07 16:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 16:30:15","page":1} 
[2026-09-07 16:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 16:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 17:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 16:45:14","page":1} 
[2026-09-07 17:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 16:00:14","window_to":"2026-09-07 17:00:14"} 
[2026-09-07 17:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 17:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 17:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-07 16:00:24","window_to":"2026-09-07 17:00:24"} 
[2026-09-07 17:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 17:00:14","page":1} 
[2026-09-07 17:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 16:15:12","window_to":"2026-09-07 17:15:12"} 
[2026-09-07 17:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 17:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 17:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 16:30:13","window_to":"2026-09-07 17:30:14"} 
[2026-09-07 17:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 17:15:13","page":1} 
[2026-09-07 17:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 17:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 17:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 17:30:14","page":1} 
[2026-09-07 17:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 16:45:14","window_to":"2026-09-07 17:45:14"} 
[2026-09-07 17:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 17:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 18:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 17:45:14","page":1} 
[2026-09-07 18:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 17:00:15","window_to":"2026-09-07 18:00:15"} 
[2026-09-07 18:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 18:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 18:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-07 17:00:27","window_to":"2026-09-07 18:00:27"} 
[2026-09-07 18:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 18:00:15","page":1} 
[2026-09-07 18:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 17:15:12","window_to":"2026-09-07 18:15:12"} 
[2026-09-07 18:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 18:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 18:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 18:15:11","page":1} 
[2026-09-07 18:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 17:30:13","window_to":"2026-09-07 18:30:13"} 
[2026-09-07 18:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 18:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 18:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 17:45:12","window_to":"2026-09-07 18:45:12"} 
[2026-09-07 18:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 18:30:13","page":1} 
[2026-09-07 18:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 18:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 19:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 18:00:16","window_to":"2026-09-07 19:00:17"} 
[2026-09-07 19:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 18:45:13","page":1} 
[2026-09-07 19:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 19:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 19:00:29] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-07 18:00:29","window_to":"2026-09-07 19:00:29"} 
[2026-09-07 19:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 18:15:12","window_to":"2026-09-07 19:15:12"} 
[2026-09-07 19:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 19:00:17","page":1} 
[2026-09-07 19:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 19:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 19:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 18:30:13","window_to":"2026-09-07 19:30:13"} 
[2026-09-07 19:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 19:15:13","page":1} 
[2026-09-07 19:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 19:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 19:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 18:45:12","window_to":"2026-09-07 19:45:12"} 
[2026-09-07 19:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 19:30:13","page":1} 
[2026-09-07 19:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 19:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 20:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 19:00:14","window_to":"2026-09-07 20:00:14"} 
[2026-09-07 20:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 19:45:13","page":1} 
[2026-09-07 20:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 20:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 20:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-07 19:00:27","window_to":"2026-09-07 20:00:27"} 
[2026-09-07 20:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 20:00:15","page":1} 
[2026-09-07 20:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 19:15:12","window_to":"2026-09-07 20:15:12"} 
[2026-09-07 20:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 20:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 20:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 19:30:13","window_to":"2026-09-07 20:30:13"} 
[2026-09-07 20:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 20:15:12","page":1} 
[2026-09-07 20:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 20:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 20:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 19:45:14","window_to":"2026-09-07 20:45:14"} 
[2026-09-07 20:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 20:30:14","page":1} 
[2026-09-07 20:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 20:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 21:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 20:00:14","window_to":"2026-09-07 21:00:14"} 
[2026-09-07 21:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 20:45:14","page":1} 
[2026-09-07 21:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 21:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 21:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-07 20:00:25","window_to":"2026-09-07 21:00:25"} 
[2026-09-07 21:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 20:15:11","window_to":"2026-09-07 21:15:11"} 
[2026-09-07 21:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 21:00:14","page":1} 
[2026-09-07 21:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 21:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 21:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 21:15:11","page":1} 
[2026-09-07 21:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 20:30:14","window_to":"2026-09-07 21:30:14"} 
[2026-09-07 21:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 21:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 21:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 20:45:12","window_to":"2026-09-07 21:45:12"} 
[2026-09-07 21:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 21:30:14","page":1} 
[2026-09-07 21:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 21:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 22:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 21:45:13","page":1} 
[2026-09-07 22:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 21:00:14","window_to":"2026-09-07 22:00:14"} 
[2026-09-07 22:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 22:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 22:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-07 21:00:26","window_to":"2026-09-07 22:00:26"} 
[2026-09-07 22:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 21:15:12","window_to":"2026-09-07 22:15:12"} 
[2026-09-07 22:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 22:00:14","page":1} 
[2026-09-07 22:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 22:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 22:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 22:15:12","page":1} 
[2026-09-07 22:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 21:30:14","window_to":"2026-09-07 22:30:14"} 
[2026-09-07 22:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 22:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 22:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 21:45:12","window_to":"2026-09-07 22:45:12"} 
[2026-09-07 22:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 22:30:14","page":1} 
[2026-09-07 22:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 22:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 23:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 22:00:14","window_to":"2026-09-07 23:00:14"} 
[2026-09-07 23:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 22:45:13","page":1} 
[2026-09-07 23:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 23:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 23:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-07 22:00:27","window_to":"2026-09-07 23:00:27"} 
[2026-09-07 23:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 22:15:12","window_to":"2026-09-07 23:15:12"} 
[2026-09-07 23:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 23:00:14","page":1} 
[2026-09-07 23:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 23:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 23:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 22:30:14","window_to":"2026-09-07 23:30:14"} 
[2026-09-07 23:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 23:15:12","page":1} 
[2026-09-07 23:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 23:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-07 23:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 22:45:12","window_to":"2026-09-07 23:45:12"} 
[2026-09-07 23:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 23:30:14","page":1} 
[2026-09-07 23:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-07 23:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 00:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 23:00:14","window_to":"2026-09-08 00:00:14"} 
[2026-09-08 00:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-07 23:45:13","page":1} 
[2026-09-08 00:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 00:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 00:00:29] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-07 23:00:29","window_to":"2026-09-08 00:00:29"} 
[2026-09-08 00:00:35] local.INFO: Automated database backup created successfully: backup_2026_09_08_00_00_29.sql  
[2026-09-08 00:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 23:15:12","window_to":"2026-09-08 00:15:12"} 
[2026-09-08 00:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 00:00:15","page":1} 
[2026-09-08 00:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 00:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 00:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 23:30:13","window_to":"2026-09-08 00:30:13"} 
[2026-09-08 00:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 00:15:12","page":1} 
[2026-09-08 00:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 00:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 00:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 00:30:13","page":1} 
[2026-09-08 00:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-07 23:45:14","window_to":"2026-09-08 00:45:14"} 
[2026-09-08 00:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 00:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 01:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 00:00:14","window_to":"2026-09-08 01:00:14"} 
[2026-09-08 01:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 00:45:14","page":1} 
[2026-09-08 01:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 01:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 01:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-08 00:00:27","window_to":"2026-09-08 01:00:27"} 
[2026-09-08 01:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 00:15:11","window_to":"2026-09-08 01:15:12"} 
[2026-09-08 01:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 01:00:15","page":1} 
[2026-09-08 01:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 01:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 01:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 00:30:13","window_to":"2026-09-08 01:30:13"} 
[2026-09-08 01:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 01:15:12","page":1} 
[2026-09-08 01:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 01:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 01:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 01:30:14","page":1} 
[2026-09-08 01:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 00:45:11","window_to":"2026-09-08 01:45:11"} 
[2026-09-08 01:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 01:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 02:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 01:45:11","page":1} 
[2026-09-08 02:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 01:00:14","window_to":"2026-09-08 02:00:15"} 
[2026-09-08 02:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 02:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 02:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-08 01:00:26","window_to":"2026-09-08 02:00:26"} 
[2026-09-08 02:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 01:15:12","window_to":"2026-09-08 02:15:12"} 
[2026-09-08 02:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 02:00:14","page":1} 
[2026-09-08 02:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 02:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 02:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 01:30:12","window_to":"2026-09-08 02:30:13"} 
[2026-09-08 02:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 02:15:13","page":1} 
[2026-09-08 02:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 02:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 02:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 01:45:12","window_to":"2026-09-08 02:45:12"} 
[2026-09-08 02:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 02:30:13","page":1} 
[2026-09-08 02:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 02:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 03:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 02:45:12","page":1} 
[2026-09-08 03:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 02:00:13","window_to":"2026-09-08 03:00:13"} 
[2026-09-08 03:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 03:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 03:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-08 02:00:24","window_to":"2026-09-08 03:00:24"} 
[2026-09-08 03:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 03:00:13","page":1} 
[2026-09-08 03:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 02:15:11","window_to":"2026-09-08 03:15:11"} 
[2026-09-08 03:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 03:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 03:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 03:15:11","page":1} 
[2026-09-08 03:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 02:30:13","window_to":"2026-09-08 03:30:13"} 
[2026-09-08 03:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 03:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 03:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 03:30:13","page":1} 
[2026-09-08 03:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 02:45:13","window_to":"2026-09-08 03:45:13"} 
[2026-09-08 03:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 03:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 04:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 03:00:13","window_to":"2026-09-08 04:00:13"} 
[2026-09-08 04:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 03:45:13","page":1} 
[2026-09-08 04:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 04:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 04:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-08 03:00:25","window_to":"2026-09-08 04:00:25"} 
[2026-09-08 04:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 04:00:14","page":1} 
[2026-09-08 04:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 04:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 04:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 03:15:12","window_to":"2026-09-08 04:15:12"} 
[2026-09-08 04:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 03:30:13","window_to":"2026-09-08 04:30:13"} 
[2026-09-08 04:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 04:15:11","page":1} 
[2026-09-08 04:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 04:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 04:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 03:45:11","window_to":"2026-09-08 04:45:12"} 
[2026-09-08 04:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 04:30:14","page":1} 
[2026-09-08 04:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 04:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 05:00:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 04:00:12","window_to":"2026-09-08 05:00:12"} 
[2026-09-08 05:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 04:45:12","page":1} 
[2026-09-08 05:00:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 05:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 05:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-08 04:00:23","window_to":"2026-09-08 05:00:24"} 
[2026-09-08 05:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 04:15:11","window_to":"2026-09-08 05:15:11"} 
[2026-09-08 05:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 05:00:13","page":1} 
[2026-09-08 05:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 05:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 05:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 04:30:15","window_to":"2026-09-08 05:30:15"} 
[2026-09-08 05:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 05:15:12","page":1} 
[2026-09-08 05:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 05:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 05:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 04:45:10","window_to":"2026-09-08 05:45:10"} 
[2026-09-08 05:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 05:30:15","page":1} 
[2026-09-08 05:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 05:45:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 06:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 05:00:14","window_to":"2026-09-08 06:00:14"} 
[2026-09-08 06:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 05:45:11","page":1} 
[2026-09-08 06:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 06:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 06:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-08 05:00:25","window_to":"2026-09-08 06:00:25"} 
[2026-09-08 06:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 05:15:10","window_to":"2026-09-08 06:15:10"} 
[2026-09-08 06:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 06:00:14","page":1} 
[2026-09-08 06:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 06:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 06:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 06:15:11","page":1} 
[2026-09-08 06:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 05:30:14","window_to":"2026-09-08 06:30:14"} 
[2026-09-08 06:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 06:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 06:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 05:45:13","window_to":"2026-09-08 06:45:13"} 
[2026-09-08 06:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 06:30:13","page":1} 
[2026-09-08 06:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 06:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 07:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 06:45:13","page":1} 
[2026-09-08 07:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 06:00:13","window_to":"2026-09-08 07:00:13"} 
[2026-09-08 07:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 07:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 07:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-08 06:00:25","window_to":"2026-09-08 07:00:25"} 
[2026-09-08 07:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 07:00:14","page":1} 
[2026-09-08 07:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 06:15:12","window_to":"2026-09-08 07:15:12"} 
[2026-09-08 07:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 07:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 07:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 07:15:12","page":1} 
[2026-09-08 07:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 06:30:14","window_to":"2026-09-08 07:30:14"} 
[2026-09-08 07:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 07:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 07:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 06:45:14","window_to":"2026-09-08 07:45:14"} 
[2026-09-08 07:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 07:30:14","page":1} 
[2026-09-08 07:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 07:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 08:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 07:00:13","window_to":"2026-09-08 08:00:13"} 
[2026-09-08 08:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 07:45:14","page":1} 
[2026-09-08 08:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 08:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 08:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-08 07:00:25","window_to":"2026-09-08 08:00:25"} 
[2026-09-08 08:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 08:00:13","page":1} 
[2026-09-08 08:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 07:15:12","window_to":"2026-09-08 08:15:12"} 
[2026-09-08 08:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 08:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 08:30:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 08:15:12","page":1} 
[2026-09-08 08:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 07:30:13","window_to":"2026-09-08 08:30:13"} 
[2026-09-08 08:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 08:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 08:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 07:45:12","window_to":"2026-09-08 08:45:12"} 
[2026-09-08 08:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 08:30:12","page":1} 
[2026-09-08 08:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 08:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 09:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 08:00:14","window_to":"2026-09-08 09:00:14"} 
[2026-09-08 09:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 08:45:13","page":1} 
[2026-09-08 09:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 09:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 09:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-08 08:00:26","window_to":"2026-09-08 09:00:26"} 
[2026-09-08 09:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 09:00:15","page":1} 
[2026-09-08 09:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 08:15:13","window_to":"2026-09-08 09:15:13"} 
[2026-09-08 09:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 09:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 09:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 08:30:15","window_to":"2026-09-08 09:30:15"} 
[2026-09-08 09:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 09:15:13","page":1} 
[2026-09-08 09:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 09:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 09:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 08:45:13","window_to":"2026-09-08 09:45:13"} 
[2026-09-08 09:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 09:30:15","page":1} 
[2026-09-08 09:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 09:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 10:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 09:45:13","page":1} 
[2026-09-08 10:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 09:00:15","window_to":"2026-09-08 10:00:15"} 
[2026-09-08 10:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 10:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 10:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-08 09:00:26","window_to":"2026-09-08 10:00:26"} 
[2026-09-08 10:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 09:15:13","window_to":"2026-09-08 10:15:13"} 
[2026-09-08 10:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 10:00:15","page":1} 
[2026-09-08 10:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 10:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 10:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 10:15:14","page":1} 
[2026-09-08 10:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 09:30:15","window_to":"2026-09-08 10:30:15"} 
[2026-09-08 10:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 10:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 10:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 10:30:15","page":1} 
[2026-09-08 10:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 09:45:13","window_to":"2026-09-08 10:45:13"} 
[2026-09-08 10:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 10:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 11:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 10:45:13","page":1} 
[2026-09-08 11:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 10:00:15","window_to":"2026-09-08 11:00:15"} 
[2026-09-08 11:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 11:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 11:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-08 10:00:27","window_to":"2026-09-08 11:00:27"} 
[2026-09-08 11:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 10:15:12","window_to":"2026-09-08 11:15:12"} 
[2026-09-08 11:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 11:00:16","page":1} 
[2026-09-08 11:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 11:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 11:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 11:15:12","page":1} 
[2026-09-08 11:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 10:30:13","window_to":"2026-09-08 11:30:13"} 
[2026-09-08 11:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 11:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 11:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 10:45:12","window_to":"2026-09-08 11:45:12"} 
[2026-09-08 11:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 11:30:14","page":1} 
[2026-09-08 11:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 11:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 12:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 11:00:14","window_to":"2026-09-08 12:00:14"} 
[2026-09-08 12:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 11:45:12","page":1} 
[2026-09-08 12:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 12:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 12:00:28] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-08 11:00:28","window_to":"2026-09-08 12:00:28"} 
[2026-09-08 12:00:33] local.INFO: Automated database backup created successfully: backup_2026_09_08_12_00_28.sql  
[2026-09-08 12:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 12:00:15","page":1} 
[2026-09-08 12:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 11:15:13","window_to":"2026-09-08 12:15:13"} 
[2026-09-08 12:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 12:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 12:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 11:30:15","window_to":"2026-09-08 12:30:15"} 
[2026-09-08 12:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 12:15:13","page":1} 
[2026-09-08 12:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 12:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 12:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 12:30:15","page":1} 
[2026-09-08 12:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 11:45:12","window_to":"2026-09-08 12:45:12"} 
[2026-09-08 12:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 12:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 13:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 12:00:16","window_to":"2026-09-08 13:00:16"} 
[2026-09-08 13:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 12:45:12","page":1} 
[2026-09-08 13:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 13:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 13:00:28] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-08 12:00:28","window_to":"2026-09-08 13:00:28"} 
[2026-09-08 13:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 12:15:12","window_to":"2026-09-08 13:15:12"} 
[2026-09-08 13:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 13:00:16","page":1} 
[2026-09-08 13:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 13:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 13:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 13:15:12","page":1} 
[2026-09-08 13:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 12:30:17","window_to":"2026-09-08 13:30:17"} 
[2026-09-08 13:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 13:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 13:40:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 13:40:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 13:44:03] local.WARNING: Permission route not configured; blocking request {"route":"GET /api/v1/admin/donors","user_id":2,"user_reg_no":"ADM009999","method":"GET","path":"/api/v1/admin/donors"} 
[2026-09-08 13:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 13:30:17","page":1} 
[2026-09-08 13:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 12:45:14","window_to":"2026-09-08 13:45:15"} 
[2026-09-08 13:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 13:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 14:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 13:00:14","window_to":"2026-09-08 14:00:14"} 
[2026-09-08 14:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 13:45:15","page":1} 
[2026-09-08 14:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 14:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 14:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-08 13:00:26","window_to":"2026-09-08 14:00:26"} 
[2026-09-08 14:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 13:15:12","window_to":"2026-09-08 14:15:12"} 
[2026-09-08 14:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 14:00:15","page":1} 
[2026-09-08 14:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 14:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 14:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 13:30:14","window_to":"2026-09-08 14:30:14"} 
[2026-09-08 14:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 14:15:12","page":1} 
[2026-09-08 14:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 14:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 14:40:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 14:40:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 14:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 14:30:15","page":1} 
[2026-09-08 14:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 13:45:12","window_to":"2026-09-08 14:45:12"} 
[2026-09-08 14:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 14:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 15:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 14:00:16","window_to":"2026-09-08 15:00:16"} 
[2026-09-08 15:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 14:45:11","page":1} 
[2026-09-08 15:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 15:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 15:00:31] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-08 14:00:30","window_to":"2026-09-08 15:00:30"} 
[2026-09-08 15:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 15:00:18","page":1} 
[2026-09-08 15:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 14:15:14","window_to":"2026-09-08 15:15:14"} 
[2026-09-08 15:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 15:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 15:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 14:30:15","window_to":"2026-09-08 15:30:15"} 
[2026-09-08 15:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 15:15:14","page":1} 
[2026-09-08 15:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 15:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 15:34:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 15:34:36] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 15:39:49] local.INFO: Registration Number Generation {"useBatchCode":false,"batchId":1,"env_value":null} 
[2026-09-08 15:39:49] local.ERROR: No fee plan found for batch ID: 1. Fee plan assignment is required for student enrollment. {"batch_id":1,"enrollments_id":3,"student_id":3} 
[2026-09-08 15:39:49] local.ERROR: Fee plan assignment failed {"enrollments_id":3,"batch_id":1,"error_message":"No fee plan found for batch ID: 1. Fee plan assignment is required for student enrollment.","error_trace":"#0 /var/www/html/api_loyala_backend/app/Http/Controllers/Api/V1/Admin/UserController.php(1249): App\\Http\\Controllers\\Api\\V1\\Admin\\UserController->assignStudentFeePlan()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): App\\Http\\Controllers\\Api\\V1\\Admin\\UserController->registerOffline()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\\Routing\\Route->runController()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\\Routing\\Route->run()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}()
#6 /var/www/html/api_loyala_backend/app/Http/Middleware/CacheApiResponses.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CacheApiResponses->handle()
#8 /var/www/html/api_loyala_backend/app/Http/Middleware/InvalidateApiCache.php(20): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\InvalidateApiCache->handle()
#10 /var/www/html/api_loyala_backend/app/Http/Middleware/RoutePermissionMiddleware.php(88): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\RoutePermissionMiddleware->handle()
#12 /var/www/html/api_loyala_backend/vendor/tymon/jwt-auth/src/Http/Middleware/Authenticate.php(32): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Tymon\\JWTAuth\\Http\\Middleware\\Authenticate->handle()
#14 /var/www/html/api_loyala_backend/app/Http/Middleware/GzipMiddleware.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\GzipMiddleware->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#18 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(25): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#49 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#50 {main}"} 
[2026-09-08 15:39:49] local.INFO: Transaction rolled back successfully  
[2026-09-08 15:39:49] local.ERROR: Student registration failed {"error":"Fee plan assignment failed: No fee plan found for batch ID: 1. Fee plan assignment is required for student enrollment.","trace":"#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): App\\Http\\Controllers\\Api\\V1\\Admin\\UserController->registerOffline()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\\Routing\\Route->runController()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\\Routing\\Route->run()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}()
#5 /var/www/html/api_loyala_backend/app/Http/Middleware/CacheApiResponses.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CacheApiResponses->handle()
#7 /var/www/html/api_loyala_backend/app/Http/Middleware/InvalidateApiCache.php(20): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\InvalidateApiCache->handle()
#9 /var/www/html/api_loyala_backend/app/Http/Middleware/RoutePermissionMiddleware.php(88): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\RoutePermissionMiddleware->handle()
#11 /var/www/html/api_loyala_backend/vendor/tymon/jwt-auth/src/Http/Middleware/Authenticate.php(32): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Tymon\\JWTAuth\\Http\\Middleware\\Authenticate->handle()
#13 /var/www/html/api_loyala_backend/app/Http/Middleware/GzipMiddleware.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\GzipMiddleware->handle()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#17 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(25): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#48 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#49 {main}","request_data":{"full_name":"MARLIN DILSHA FRANCIS XAVIER","email":"marlindilsha@gmail.com","phone":"0742082380","whtsapp_num":null,"emergency_phone":null,"nic_passport":"200750701367","dob":"2007-07-01","gender":"female","address":"Chundikuli,Murunkan","marital_status":null,"admission_date":"2026-09-08","country":"sri_lanka","district":"mannar","guardian_select":"father","guardian_name":"Francis Xavier","guardian_phone":"0778218446","guardian_email":null,"guardian_address":"Chundikuli,Murunkan","requested_branch":1,"branch":1,"faculty_id":2,"program_category":6,"program_id":12,"batch_id":1,"o_level_school":null,"o_level_exam_id":null,"o_level_graduation_year":null,"o_level_graduation_point":null,"a_level_school":null,"a_level_exam_id":null,"a_level_graduation_year":null,"a_level_graduation_point":null,"education_level":"a_level_completed","occupation":"student","occupation_place_name":"Mn/Murunkan C.C","know_from":"social_media","note":null,"status":"active","reg_type":"offline","isConvert":true,"lead_id":1}} 
[2026-09-08 15:40:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 15:40:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 15:41:04] local.INFO: Registration Number Generation {"useBatchCode":false,"batchId":1,"env_value":null} 
[2026-09-08 15:41:05] local.ERROR: No fee plan found for batch ID: 1. Fee plan assignment is required for student enrollment. {"batch_id":1,"enrollments_id":4,"student_id":4} 
[2026-09-08 15:41:05] local.ERROR: Fee plan assignment failed {"enrollments_id":4,"batch_id":1,"error_message":"No fee plan found for batch ID: 1. Fee plan assignment is required for student enrollment.","error_trace":"#0 /var/www/html/api_loyala_backend/app/Http/Controllers/Api/V1/Admin/UserController.php(1249): App\\Http\\Controllers\\Api\\V1\\Admin\\UserController->assignStudentFeePlan()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): App\\Http\\Controllers\\Api\\V1\\Admin\\UserController->registerOffline()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\\Routing\\Route->runController()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\\Routing\\Route->run()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}()
#6 /var/www/html/api_loyala_backend/app/Http/Middleware/CacheApiResponses.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CacheApiResponses->handle()
#8 /var/www/html/api_loyala_backend/app/Http/Middleware/InvalidateApiCache.php(20): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\InvalidateApiCache->handle()
#10 /var/www/html/api_loyala_backend/app/Http/Middleware/RoutePermissionMiddleware.php(88): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\RoutePermissionMiddleware->handle()
#12 /var/www/html/api_loyala_backend/vendor/tymon/jwt-auth/src/Http/Middleware/Authenticate.php(32): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Tymon\\JWTAuth\\Http\\Middleware\\Authenticate->handle()
#14 /var/www/html/api_loyala_backend/app/Http/Middleware/GzipMiddleware.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\GzipMiddleware->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#18 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(25): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#49 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#50 {main}"} 
[2026-09-08 15:41:05] local.INFO: Transaction rolled back successfully  
[2026-09-08 15:41:05] local.ERROR: Student registration failed {"error":"Fee plan assignment failed: No fee plan found for batch ID: 1. Fee plan assignment is required for student enrollment.","trace":"#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): App\\Http\\Controllers\\Api\\V1\\Admin\\UserController->registerOffline()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\\Routing\\Route->runController()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\\Routing\\Route->run()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}()
#5 /var/www/html/api_loyala_backend/app/Http/Middleware/CacheApiResponses.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CacheApiResponses->handle()
#7 /var/www/html/api_loyala_backend/app/Http/Middleware/InvalidateApiCache.php(20): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\InvalidateApiCache->handle()
#9 /var/www/html/api_loyala_backend/app/Http/Middleware/RoutePermissionMiddleware.php(88): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\RoutePermissionMiddleware->handle()
#11 /var/www/html/api_loyala_backend/vendor/tymon/jwt-auth/src/Http/Middleware/Authenticate.php(32): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Tymon\\JWTAuth\\Http\\Middleware\\Authenticate->handle()
#13 /var/www/html/api_loyala_backend/app/Http/Middleware/GzipMiddleware.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\GzipMiddleware->handle()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#17 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(25): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#48 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#49 {main}","request_data":{"full_name":"MARLIN DILSHA FRANCIS XAVIER","email":"marlindilsha@gmail.com","phone":"0742082380","whtsapp_num":null,"emergency_phone":null,"nic_passport":"200750701367","dob":"2007-07-01","gender":"female","address":"Chundikuli,Murunkan","marital_status":null,"admission_date":"2026-09-08","country":"sri_lanka","district":"mannar","guardian_select":"father","guardian_name":"Francis Xavier","guardian_phone":"0778218446","guardian_email":null,"guardian_address":"Chundikuli,Murunkan","requested_branch":1,"branch":1,"faculty_id":2,"program_category":6,"program_id":12,"batch_id":1,"o_level_school":null,"o_level_exam_id":null,"o_level_graduation_year":null,"o_level_graduation_point":null,"a_level_school":null,"a_level_exam_id":null,"a_level_graduation_year":null,"a_level_graduation_point":null,"education_level":"a_level_completed","occupation":"student","occupation_place_name":"Mn/Murunkan C.C","know_from":"social_media","note":null,"status":"active","reg_type":"offline","isConvert":true,"lead_id":1}} 
[2026-09-08 15:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 14:45:13","window_to":"2026-09-08 15:45:14"} 
[2026-09-08 15:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 15:30:16","page":1} 
[2026-09-08 15:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 15:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 15:49:19] local.INFO: Registration Number Generation {"useBatchCode":false,"batchId":1,"env_value":null} 
[2026-09-08 15:49:20] local.INFO: Using backend-style offer letter template  
[2026-09-08 15:49:20] local.INFO: OfferLetterService: generateFinePolicySection invoked  
[2026-09-08 15:49:20] local.INFO: OfferLetterService: fine policy not found, returning empty section  
[2026-09-08 15:49:20] local.INFO: OfferLetterService: fine policy section generated {"included":false,"length":0} 
[2026-09-08 15:49:22] local.ERROR: Gmail API error: Gmail API settings not configured  
[2026-09-08 15:49:22] local.ERROR: ZeptoMailer error: Zepto Mail API key or admin email not configured  
[2026-09-08 15:49:22] local.ERROR: Gmail API error: Gmail API settings not configured  
[2026-09-08 15:49:22] local.WARNING: Gmail failed for login credentials, trying Zepto Mail {"gmail_error":"Gmail API settings not configured"} 
[2026-09-08 15:49:22] local.ERROR: ZeptoMailer error: Zepto Mail API key or admin email not configured  
[2026-09-08 15:50:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 15:50:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 15:50:35] local.WARNING: Permission route not configured; blocking request {"route":"GET /api/v1/admin/backups","user_id":2,"user_reg_no":"ADM009999","method":"GET","path":"/api/v1/admin/backups"} 
[2026-09-08 15:51:16] local.INFO: Student activated by payment status update {"student_id":5,"previous_status":"active","new_status":"active","outstanding_amount":12000.0,"due_amount":0.0,"due_percentage":0.0,"max_due_percentage":100.0,"has_grace_period":false} 
[2026-09-08 15:51:16] local.INFO: array (
  'success' => true,
  'message' => 'Student status updated to active',
  'student_id' => 5,
  'previous_status' => 'active',
  'current_status' => 'active',
  'payment_info' => 
  array (
    'outstanding_amount' => 12000.0,
    'due_amount' => 0.0,
    'due_items_count' => 0,
    'due_percentage' => 0.0,
    'max_due_percentage' => 100.0,
    'has_grace_period' => false,
  ),
)  
[2026-09-08 15:51:16] local.INFO: Email/SMS notifications disabled via ENABLE_SMS_EMAIL_FOR_NOTIFICATION  
[2026-09-08 15:51:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 15:51:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 15:51:18] local.INFO: Using backend-style offer letter template  
[2026-09-08 15:51:18] local.INFO: OfferLetterService: generateFinePolicySection invoked  
[2026-09-08 15:51:18] local.INFO: OfferLetterService: fine policy not found, returning empty section  
[2026-09-08 15:51:18] local.INFO: OfferLetterService: fine policy section generated {"included":false,"length":0} 
[2026-09-08 15:51:19] local.INFO: Offer letter already sent for student, skipping {"student_id":5} 
[2026-09-08 15:51:19] local.INFO: Login credentials already sent for student, skipping {"student_id":5} 
[2026-09-08 15:51:19] local.INFO: Offer letter generated and sent successfully {"student_id":5,"program_id":12,"payment_id":1,"student_name":"MARLIN DILSHA FRANCIS XAVIER","student_email":"marlindilsha@gmail.com"} 
[2026-09-08 15:51:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 15:51:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 15:51:21] local.WARNING: Permission route not configured; blocking request {"route":"POST /api/v1/admin/backups","user_id":2,"user_reg_no":"ADM009999","method":"POST","path":"/api/v1/admin/backups"} 
[2026-09-08 15:51:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 15:55:02] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 15:55:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 15:55:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 15:55:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 15:57:48] local.INFO: Auto-assign: Getting eligible counselors {"branch_id":null,"last_assigned_user_id":null,"last_assigned_staff_id":null} 
[2026-09-08 15:57:48] local.INFO: Auto-assign: Found counselors {"count":0,"counselor_ids":[]} 
[2026-09-08 15:57:48] local.WARNING: Auto-assign: No eligible counselors found {"reason":"No users with is_auto_assign=true role and active staff record","date":"2026-09-08","staff_on_leave_ids":[]} 
[2026-09-08 15:57:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 15:57:49] local.INFO: No FCM tokens found for user {"notification_id":8,"user_id":2} 
[2026-09-08 15:57:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 15:57:49] local.INFO: No FCM tokens found for user {"notification_id":9,"user_id":1} 
[2026-09-08 16:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 15:45:14","page":1} 
[2026-09-08 16:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 15:00:16","window_to":"2026-09-08 16:00:16"} 
[2026-09-08 16:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 16:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 16:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-08 15:00:26","window_to":"2026-09-08 16:00:26"} 
[2026-09-08 16:07:26] local.INFO: Using backend-style offer letter template  
[2026-09-08 16:07:26] local.INFO: OfferLetterService: generateFinePolicySection invoked  
[2026-09-08 16:07:26] local.INFO: OfferLetterService: fine policy not found, returning empty section  
[2026-09-08 16:07:26] local.INFO: OfferLetterService: fine policy section generated {"included":false,"length":0} 
[2026-09-08 16:07:27] local.INFO: Offer letter already sent for student, skipping {"student_id":5} 
[2026-09-08 16:07:27] local.INFO: Login credentials already sent for student, skipping {"student_id":5} 
[2026-09-08 16:08:01] local.INFO: Student activated by payment status update {"student_id":5,"previous_status":"active","new_status":"active","outstanding_amount":12000.0,"due_amount":0.0,"due_percentage":0.0,"max_due_percentage":100.0,"has_grace_period":false} 
[2026-09-08 16:08:01] local.INFO: array (
  'success' => true,
  'message' => 'Student status updated to active',
  'student_id' => 5,
  'previous_status' => 'active',
  'current_status' => 'active',
  'payment_info' => 
  array (
    'outstanding_amount' => 12000.0,
    'due_amount' => 0.0,
    'due_items_count' => 0,
    'due_percentage' => 0.0,
    'max_due_percentage' => 100.0,
    'has_grace_period' => false,
  ),
)  
[2026-09-08 16:08:01] local.INFO: Email/SMS notifications disabled via ENABLE_SMS_EMAIL_FOR_NOTIFICATION  
[2026-09-08 16:08:02] local.INFO: Using backend-style offer letter template  
[2026-09-08 16:08:02] local.INFO: OfferLetterService: generateFinePolicySection invoked  
[2026-09-08 16:08:02] local.INFO: OfferLetterService: fine policy not found, returning empty section  
[2026-09-08 16:08:02] local.INFO: OfferLetterService: fine policy section generated {"included":false,"length":0} 
[2026-09-08 16:08:07] local.INFO: Offer letter already sent for student, skipping {"student_id":5} 
[2026-09-08 16:08:07] local.INFO: Login credentials already sent for student, skipping {"student_id":5} 
[2026-09-08 16:08:07] local.INFO: Offer letter generated and sent successfully {"student_id":5,"program_id":5,"payment_id":2,"student_name":"MARLIN DILSHA FRANCIS XAVIER","student_email":"marlindilsha@gmail.com"} 
[2026-09-08 16:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 15:15:13","window_to":"2026-09-08 16:15:14"} 
[2026-09-08 16:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 16:00:15","page":1} 
[2026-09-08 16:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 16:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 16:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 16:15:15","page":1} 
[2026-09-08 16:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 15:30:14","window_to":"2026-09-08 16:30:15"} 
[2026-09-08 16:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 16:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 16:37:33] local.ERROR: Gmail API error: Gmail API settings not configured  
[2026-09-08 16:37:33] local.WARNING: Gmail failed for staff credentials email, trying Zepto Mail {"gmail_error":"Gmail API settings not configured"} 
[2026-09-08 16:37:33] local.ERROR: ZeptoMailer error: Zepto Mail API key or admin email not configured  
[2026-09-08 16:37:33] local.WARNING: Failed to send staff credentials email {"staff_id":4,"error":"Zepto Mail API key or admin email not configured"} 
[2026-09-08 16:37:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 16:37:33] local.INFO: No FCM tokens found for user {"notification_id":10,"user_id":2} 
[2026-09-08 16:37:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 16:37:33] local.INFO: No FCM tokens found for user {"notification_id":11,"user_id":1} 
[2026-09-08 16:38:11] local.INFO: Lecturer assignment notification sent {"module_offering_id":1,"user_id":9,"role":"lecturer"} 
[2026-09-08 16:38:11] local.INFO: Module offering creation notifications sent {"module_offering_id":1,"module_name":"Use the computer and manage files within  standard operating systems","program_name":"Computer Application Assistant"} 
[2026-09-08 16:38:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 16:38:12] local.INFO: No FCM tokens found for user {"notification_id":12,"user_id":2} 
[2026-09-08 16:38:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 16:38:12] local.INFO: No FCM tokens found for user {"notification_id":13,"user_id":1} 
[2026-09-08 16:38:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 16:38:12] local.INFO: No FCM tokens found for user {"notification_id":14,"user_id":9} 
[2026-09-08 16:38:24] local.INFO: Module offering update notifications sent {"module_offering_id":1,"module_name":"Use the computer and manage files within  standard operating systems","program_name":"Computer Application Assistant"} 
[2026-09-08 16:38:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 16:38:24] local.INFO: No FCM tokens found for user {"notification_id":15,"user_id":2} 
[2026-09-08 16:38:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 16:38:24] local.INFO: No FCM tokens found for user {"notification_id":16,"user_id":1} 
[2026-09-08 16:41:51] local.INFO: Student notifications sent for class session {"session_id":1,"student_count":1,"program_id":12} 
[2026-09-08 16:41:51] local.INFO: Lecturer creation notification sent {"session_id":1,"lecturer_id":4,"lecturer_user_id":9} 
[2026-09-08 16:41:51] local.INFO: Class session notifications sent successfully {"session_id":1,"module_name":"Use the computer and manage files within  standard operating systems","program_name":"Computer Application Assistant"} 
[2026-09-08 16:41:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 16:41:52] local.INFO: No FCM tokens found for user {"notification_id":17,"user_id":3} 
[2026-09-08 16:41:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 16:41:52] local.INFO: No FCM tokens found for user {"notification_id":18,"user_id":2} 
[2026-09-08 16:41:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 16:41:52] local.INFO: No FCM tokens found for user {"notification_id":19,"user_id":1} 
[2026-09-08 16:41:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 16:41:52] local.INFO: No FCM tokens found for user {"notification_id":20,"user_id":9} 
[2026-09-08 16:41:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 16:41:52] local.INFO: No FCM tokens found for user {"notification_id":21,"user_id":8} 
[2026-09-08 16:41:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 16:41:52] local.INFO: No FCM tokens found for user {"notification_id":22,"user_id":9} 
[2026-09-08 16:42:40] local.INFO: Class session updated with learning materials {"session_id":1,"module_offering_id":1,"materials_updated":false,"materials_count":0,"changed_fields":{"session_date":{"old":"2026-09-14","new":"2026-09-08"}},"user_id":1} 
[2026-09-08 16:42:40] local.INFO: Student update notifications sent for class session {"session_id":1,"student_count":1,"program_id":12,"changed_fields":["session_date"]} 
[2026-09-08 16:42:40] local.INFO: Lecturer update notification sent {"session_id":1,"lecturer_id":4,"lecturer_user_id":9,"changed_fields":["session_date"]} 
[2026-09-08 16:42:40] local.INFO: Class session update notifications sent successfully {"session_id":1,"changed_fields":["session_date"],"module_name":"Use the computer and manage files within  standard operating systems","program_name":"Computer Application Assistant"} 
[2026-09-08 16:42:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 16:42:40] local.INFO: No FCM tokens found for user {"notification_id":23,"user_id":3} 
[2026-09-08 16:42:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 16:42:40] local.INFO: No FCM tokens found for user {"notification_id":24,"user_id":2} 
[2026-09-08 16:42:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 16:42:40] local.INFO: No FCM tokens found for user {"notification_id":25,"user_id":1} 
[2026-09-08 16:42:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 16:42:40] local.INFO: No FCM tokens found for user {"notification_id":26,"user_id":9} 
[2026-09-08 16:42:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 16:42:40] local.INFO: No FCM tokens found for user {"notification_id":27,"user_id":8} 
[2026-09-08 16:42:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 16:42:40] local.INFO: No FCM tokens found for user {"notification_id":28,"user_id":9} 
[2026-09-08 16:44:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 16:44:23] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/assignments","user_id":9,"user_reg_no":"LEC001001","permissions":["lms.assignments.view"],"permission_ids":[408]} 
[2026-09-08 16:44:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 16:44:23] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/class-sessions","user_id":9,"user_reg_no":"LEC001001","permissions":["lms.class_sessions.view"],"permission_ids":[390]} 
[2026-09-08 16:44:23] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/class-sessions","user_id":9,"user_reg_no":"LEC001001","permissions":["lms.class_sessions.view"],"permission_ids":[390]} 
[2026-09-08 16:44:23] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/adms","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-08 16:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 15:45:12","window_to":"2026-09-08 16:45:12"} 
[2026-09-08 16:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 16:30:15","page":1} 
[2026-09-08 16:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 16:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 16:46:01] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/adms","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-08 16:46:01] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/class-sessions","user_id":9,"user_reg_no":"LEC001001","permissions":["lms.class_sessions.view"],"permission_ids":[390]} 
[2026-09-08 16:46:01] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/assignments","user_id":9,"user_reg_no":"LEC001001","permissions":["lms.assignments.view"],"permission_ids":[408]} 
[2026-09-08 16:46:02] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/class-sessions","user_id":9,"user_reg_no":"LEC001001","permissions":["lms.class_sessions.view"],"permission_ids":[390]} 
[2026-09-08 16:47:07] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/adms","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-08 16:47:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 16:47:13] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/adms","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-08 16:47:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 16:47:17] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/adms","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-08 16:47:47] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/module-offerings","user_id":9,"user_reg_no":"LEC001001","permissions":["academic.module_offerings.view"],"permission_ids":[332]} 
[2026-09-08 16:47:47] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/branches","user_id":9,"user_reg_no":"LEC001001","permissions":["academic.branches.view"],"permission_ids":[294]} 
[2026-09-08 16:47:47] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/adms","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-08 16:48:06] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 16:48:06] local.INFO: No FCM tokens found for user {"notification_id":29,"user_id":8} 
[2026-09-08 16:49:16] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/academic/holidays/calendar","user_id":9,"user_reg_no":"LEC001001","permissions":["academic.holidays.calendar.view"],"permission_ids":[347]} 
[2026-09-08 16:49:16] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/academic/holidays","user_id":9,"user_reg_no":"LEC001001","permissions":["academic.holidays.view"],"permission_ids":[342]} 
[2026-09-08 16:50:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 16:50:43] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/adms","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-08 16:50:55] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/adms","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-08 16:51:06] local.ERROR: require(/var/www/html/api_loyala_backend/bootstrap/cache/routes-v7.php): Failed to open stream: No such file or directory {"exception":"[object] (ErrorException(code: 0): require(/var/www/html/api_loyala_backend/bootstrap/cache/routes-v7.php): Failed to open stream: No such file or directory at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php:150)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php(262): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php(150): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->Illuminate\\Foundation\\Bootstrap\\{closure}()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php(150): require('...')
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1194): Illuminate\\Foundation\\Support\\Providers\\RouteServiceProvider->Illuminate\\Foundation\\Support\\Providers\\{closure}()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1137): Illuminate\\Foundation\\Application->fireAppCallbacks()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/BootProviders.php(17): Illuminate\\Foundation\\Application->boot()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(342): Illuminate\\Foundation\\Bootstrap\\BootProviders->bootstrap()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(186): Illuminate\\Foundation\\Application->bootstrapWith()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(170): Illuminate\\Foundation\\Http\\Kernel->bootstrap()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#11 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#12 {main}
"} 
[2026-09-08 16:54:45] local.ERROR: Command "optimize:cleawr" is not defined.

Did you mean one of these?
    activitylog:clean
    cache:clear
    config:clear
    event:clear
    geoip:clear
    optimize
    optimize:clear
    queue:clear
    route:clear
    view:clear {"exception":"[object] (Symfony\\Component\\Console\\Exception\\CommandNotFoundException(code: 0): Command \"optimize:cleawr\" is not defined.

Did you mean one of these?
    activitylog:clean
    cache:clear
    config:clear
    event:clear
    geoip:clear
    optimize
    optimize:clear
    queue:clear
    route:clear
    view:clear at /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php:759)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(298): Symfony\\Component\\Console\\Application->find()
#1 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#4 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#5 {main}
"} 
[2026-09-08 17:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 16:45:13","page":1} 
[2026-09-08 17:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 16:00:16","window_to":"2026-09-08 17:00:16"} 
[2026-09-08 17:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 17:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 17:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-08 16:00:27","window_to":"2026-09-08 17:00:27"} 
[2026-09-08 17:02:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 17:02:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 17:02:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 17:02:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 17:02:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 17:02:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 17:03:03] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 17:03:04] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 17:05:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 17:05:44] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/roles","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.roles.view"],"permission_ids":[757]} 
[2026-09-08 17:05:44] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-08 17:05:46] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-08 17:05:46] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/adms","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-08 17:06:14] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-08 17:06:45] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-08 17:06:45] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-08 17:06:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 17:06:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 17:06:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 17:06:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 17:07:15] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-08 17:07:45] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-08 17:07:45] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-08 17:08:15] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-08 17:08:45] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-08 17:08:45] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-08 17:09:15] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-08 17:09:45] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-08 17:10:15] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-08 17:10:45] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-08 17:11:14] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-08 17:11:45] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-08 17:12:14] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-08 17:12:45] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-08 17:12:45] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-08 17:13:15] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-08 17:14:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 17:14:14] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-08 17:14:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 17:14:14] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-08 17:14:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 17:14:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 17:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 17:00:15","page":1} 
[2026-09-08 17:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 16:15:13","window_to":"2026-09-08 17:15:13"} 
[2026-09-08 17:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 17:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 17:15:17] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-08 17:15:17] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-08 17:15:47] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-08 17:15:47] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-08 17:15:50] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/roles","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.roles.view"],"permission_ids":[757]} 
[2026-09-08 17:15:50] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-08 17:15:50] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-08 17:15:50] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/adms","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-08 17:16:21] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-08 17:16:51] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-08 17:16:51] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-08 17:17:00] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/roles","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.roles.view"],"permission_ids":[757]} 
[2026-09-08 17:17:00] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-08 17:17:03] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-08 17:17:04] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/roles","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.roles.view"],"permission_ids":[757]} 
[2026-09-08 17:17:05] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-08 17:17:05] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/adms","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-08 17:17:21] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-08 17:17:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 17:17:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 17:17:24] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/adms","user_id":3,"user_reg_no":"STF001001","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-08 17:17:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 17:17:31] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-08 17:17:33] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-08 17:17:51] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-08 17:17:51] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-08 17:17:52] local.INFO: Getting Mobitel settings {"password_exists":false,"password_encrypted_value":"null","password_decrypted_length":0} 
[2026-09-08 17:18:03] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-08 17:18:03] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-08 17:18:21] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-08 17:18:33] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-08 17:18:51] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-08 17:18:51] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-08 17:19:03] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-08 17:19:04] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-08 17:19:21] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-08 17:19:33] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-08 17:19:51] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-08 17:19:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 17:19:54] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/roles","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.roles.view"],"permission_ids":[757]} 
[2026-09-08 17:19:54] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-08 17:20:05] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-08 17:20:05] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-08 17:20:16] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-08 17:20:23] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-08 17:20:33] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-08 17:20:51] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-08 17:20:53] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-08 17:21:04] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-08 17:21:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 17:21:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 17:21:15] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/adms","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-08 17:21:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 17:21:53] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/adms","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-08 17:21:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 17:21:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 17:22:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 17:22:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 17:22:03] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 17:22:03] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 17:22:07] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/adms","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-08 17:22:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 17:23:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 17:23:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 17:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 16:30:16","window_to":"2026-09-08 17:30:17"} 
[2026-09-08 17:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 17:15:13","page":1} 
[2026-09-08 17:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 17:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 17:42:39] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/adms","user_id":9,"user_reg_no":"LEC001001","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-08 17:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 17:30:17","page":1} 
[2026-09-08 17:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 16:45:12","window_to":"2026-09-08 17:45:12"} 
[2026-09-08 17:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 17:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 18:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 17:00:14","window_to":"2026-09-08 18:00:15"} 
[2026-09-08 18:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 17:45:12","page":1} 
[2026-09-08 18:00:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-08 18:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 18:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 18:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-08 17:00:27","window_to":"2026-09-08 18:00:27"} 
[2026-09-08 18:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 17:15:14","window_to":"2026-09-08 18:15:14"} 
[2026-09-08 18:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 18:00:15","page":1} 
[2026-09-08 18:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 18:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 18:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 17:30:14","window_to":"2026-09-08 18:30:14"} 
[2026-09-08 18:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 18:15:15","page":1} 
[2026-09-08 18:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 18:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 18:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 18:30:14","page":1} 
[2026-09-08 18:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 17:45:12","window_to":"2026-09-08 18:45:13"} 
[2026-09-08 18:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 18:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 19:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 18:00:14","window_to":"2026-09-08 19:00:14"} 
[2026-09-08 19:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 18:45:12","page":1} 
[2026-09-08 19:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 19:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 19:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-08 18:00:26","window_to":"2026-09-08 19:00:26"} 
[2026-09-08 19:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 19:00:15","page":1} 
[2026-09-08 19:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 18:15:13","window_to":"2026-09-08 19:15:14"} 
[2026-09-08 19:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 19:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 19:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 18:30:14","window_to":"2026-09-08 19:30:14"} 
[2026-09-08 19:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 19:15:13","page":1} 
[2026-09-08 19:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 19:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 19:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 19:30:14","page":1} 
[2026-09-08 19:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 18:45:13","window_to":"2026-09-08 19:45:13"} 
[2026-09-08 19:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 19:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 20:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 19:00:15","window_to":"2026-09-08 20:00:15"} 
[2026-09-08 20:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 19:45:13","page":1} 
[2026-09-08 20:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 20:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 20:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-08 19:00:26","window_to":"2026-09-08 20:00:26"} 
[2026-09-08 20:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 20:00:15","page":1} 
[2026-09-08 20:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 19:15:13","window_to":"2026-09-08 20:15:13"} 
[2026-09-08 20:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 20:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 20:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 19:30:14","window_to":"2026-09-08 20:30:14"} 
[2026-09-08 20:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 20:15:13","page":1} 
[2026-09-08 20:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 20:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 20:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 20:30:14","page":1} 
[2026-09-08 20:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 19:45:13","window_to":"2026-09-08 20:45:13"} 
[2026-09-08 20:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 20:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 21:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 20:45:13","page":1} 
[2026-09-08 21:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 20:00:15","window_to":"2026-09-08 21:00:15"} 
[2026-09-08 21:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 21:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 21:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-08 20:00:26","window_to":"2026-09-08 21:00:26"} 
[2026-09-08 21:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 20:15:12","window_to":"2026-09-08 21:15:12"} 
[2026-09-08 21:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 21:00:15","page":1} 
[2026-09-08 21:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 21:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 21:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 20:30:14","window_to":"2026-09-08 21:30:14"} 
[2026-09-08 21:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 21:15:13","page":1} 
[2026-09-08 21:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 21:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 21:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 20:45:13","window_to":"2026-09-08 21:45:13"} 
[2026-09-08 21:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 21:30:14","page":1} 
[2026-09-08 21:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 21:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 22:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 21:00:14","window_to":"2026-09-08 22:00:14"} 
[2026-09-08 22:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 21:45:13","page":1} 
[2026-09-08 22:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 22:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 22:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-08 21:00:25","window_to":"2026-09-08 22:00:25"} 
[2026-09-08 22:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 21:15:12","window_to":"2026-09-08 22:15:13"} 
[2026-09-08 22:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 22:00:15","page":1} 
[2026-09-08 22:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 22:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 22:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 22:15:13","page":1} 
[2026-09-08 22:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 21:30:14","window_to":"2026-09-08 22:30:14"} 
[2026-09-08 22:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 22:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 22:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 21:45:13","window_to":"2026-09-08 22:45:13"} 
[2026-09-08 22:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 22:30:15","page":1} 
[2026-09-08 22:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 22:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 23:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 22:45:13","page":1} 
[2026-09-08 23:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 22:00:15","window_to":"2026-09-08 23:00:15"} 
[2026-09-08 23:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 23:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 23:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-08 22:00:26","window_to":"2026-09-08 23:00:26"} 
[2026-09-08 23:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 23:00:14","page":1} 
[2026-09-08 23:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 22:15:13","window_to":"2026-09-08 23:15:13"} 
[2026-09-08 23:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 23:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 23:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 22:30:14","window_to":"2026-09-08 23:30:14"} 
[2026-09-08 23:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 23:15:13","page":1} 
[2026-09-08 23:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 23:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-08 23:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 23:30:15","page":1} 
[2026-09-08 23:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 22:45:13","window_to":"2026-09-08 23:45:13"} 
[2026-09-08 23:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-08 23:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 00:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-08 23:45:12","page":1} 
[2026-09-09 00:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 23:00:14","window_to":"2026-09-09 00:00:14"} 
[2026-09-09 00:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 00:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 00:00:28] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-08 23:00:28","window_to":"2026-09-09 00:00:28"} 
[2026-09-09 00:00:28] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_09_00_00_28.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-09 00:00:28] local.INFO: Student payment status check queued {"batches":1,"students":1} 
[2026-09-09 00:00:31] local.INFO: Student payment status cron evaluated {"student_id":5,"admission_no":"26/000001","outstanding_amount":24000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-09 00:00:33] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_09_00_00_28.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-09 00:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 23:15:12","window_to":"2026-09-09 00:15:12"} 
[2026-09-09 00:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 00:00:14","page":1} 
[2026-09-09 00:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 00:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 00:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 23:30:14","window_to":"2026-09-09 00:30:14"} 
[2026-09-09 00:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 00:15:13","page":1} 
[2026-09-09 00:30:25] local.ERROR: ❌ Exception while polling TikTok leads {"error":"cURL error 28: SSL connection timeout (see https://curl.se/libcurl/c/libcurl-errors.html) for https://business-api.tiktok.com/open_api/v1.3/page/leads/get/?filtering=%7B%22start_time%22%3A%222026-09-09%2000%3A15%3A13%22%7D&page=1&page_size=100"} 
[2026-09-09 00:30:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 00:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-08 23:45:13","window_to":"2026-09-09 00:45:13"} 
[2026-09-09 00:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 00:30:14","page":1} 
[2026-09-09 00:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 00:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 01:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 00:45:14","page":1} 
[2026-09-09 01:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 00:00:16","window_to":"2026-09-09 01:00:16"} 
[2026-09-09 01:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 01:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 01:00:29] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-09 00:00:29","window_to":"2026-09-09 01:00:29"} 
[2026-09-09 01:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 01:00:16","page":1} 
[2026-09-09 01:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 00:15:12","window_to":"2026-09-09 01:15:12"} 
[2026-09-09 01:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 01:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 01:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 00:30:15","window_to":"2026-09-09 01:30:15"} 
[2026-09-09 01:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 01:15:12","page":1} 
[2026-09-09 01:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 01:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 01:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 00:45:13","window_to":"2026-09-09 01:45:13"} 
[2026-09-09 01:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 01:30:15","page":1} 
[2026-09-09 01:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 01:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 02:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 01:45:13","page":1} 
[2026-09-09 02:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 01:00:16","window_to":"2026-09-09 02:00:16"} 
[2026-09-09 02:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 02:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 02:00:29] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-09 01:00:29","window_to":"2026-09-09 02:00:29"} 
[2026-09-09 02:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 01:15:11","window_to":"2026-09-09 02:15:11"} 
[2026-09-09 02:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 02:00:15","page":1} 
[2026-09-09 02:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 02:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 02:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 01:30:13","window_to":"2026-09-09 02:30:13"} 
[2026-09-09 02:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 02:15:12","page":1} 
[2026-09-09 02:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 02:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 02:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 02:30:13","page":1} 
[2026-09-09 02:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 01:45:12","window_to":"2026-09-09 02:45:13"} 
[2026-09-09 02:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 02:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 03:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 02:00:13","window_to":"2026-09-09 03:00:13"} 
[2026-09-09 03:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 02:45:12","page":1} 
[2026-09-09 03:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 03:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 03:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-09 02:00:24","window_to":"2026-09-09 03:00:24"} 
[2026-09-09 03:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 02:15:12","window_to":"2026-09-09 03:15:12"} 
[2026-09-09 03:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 03:00:13","page":1} 
[2026-09-09 03:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 03:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 03:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 03:15:12","page":1} 
[2026-09-09 03:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 02:30:13","window_to":"2026-09-09 03:30:13"} 
[2026-09-09 03:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 03:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 03:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 02:45:11","window_to":"2026-09-09 03:45:11"} 
[2026-09-09 03:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 03:30:13","page":1} 
[2026-09-09 03:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 03:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 04:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 03:45:12","page":1} 
[2026-09-09 04:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 03:00:15","window_to":"2026-09-09 04:00:15"} 
[2026-09-09 04:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 04:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 04:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-09 03:00:24","window_to":"2026-09-09 04:00:24"} 
[2026-09-09 04:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 04:00:15","page":1} 
[2026-09-09 04:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 03:15:12","window_to":"2026-09-09 04:15:12"} 
[2026-09-09 04:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 04:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 04:30:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 04:15:12","page":1} 
[2026-09-09 04:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 03:30:12","window_to":"2026-09-09 04:30:12"} 
[2026-09-09 04:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 04:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 04:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 03:45:12","window_to":"2026-09-09 04:45:12"} 
[2026-09-09 04:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 04:30:12","page":1} 
[2026-09-09 04:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 04:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 05:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 04:45:12","page":1} 
[2026-09-09 05:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 04:00:14","window_to":"2026-09-09 05:00:14"} 
[2026-09-09 05:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 05:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 05:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-09 04:00:23","window_to":"2026-09-09 05:00:23"} 
[2026-09-09 05:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 04:15:12","window_to":"2026-09-09 05:15:12"} 
[2026-09-09 05:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 05:00:14","page":1} 
[2026-09-09 05:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 05:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 05:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 05:15:12","page":1} 
[2026-09-09 05:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 04:30:15","window_to":"2026-09-09 05:30:15"} 
[2026-09-09 05:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 05:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 05:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 04:45:11","window_to":"2026-09-09 05:45:11"} 
[2026-09-09 05:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 05:30:15","page":1} 
[2026-09-09 05:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 05:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 06:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 05:45:11","page":1} 
[2026-09-09 06:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 05:00:14","window_to":"2026-09-09 06:00:14"} 
[2026-09-09 06:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 06:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 06:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-09 05:00:24","window_to":"2026-09-09 06:00:24"} 
[2026-09-09 06:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 06:00:13","page":1} 
[2026-09-09 06:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 05:15:13","window_to":"2026-09-09 06:15:13"} 
[2026-09-09 06:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 06:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 06:30:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 06:15:13","page":1} 
[2026-09-09 06:30:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 05:30:12","window_to":"2026-09-09 06:30:12"} 
[2026-09-09 06:30:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 06:30:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 06:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 05:45:11","window_to":"2026-09-09 06:45:12"} 
[2026-09-09 06:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 06:30:12","page":1} 
[2026-09-09 06:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 06:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 07:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 06:45:12","page":1} 
[2026-09-09 07:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 06:00:12","window_to":"2026-09-09 07:00:12"} 
[2026-09-09 07:00:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 07:00:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 07:00:23] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-09 06:00:23","window_to":"2026-09-09 07:00:23"} 
[2026-09-09 07:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 07:00:13","page":1} 
[2026-09-09 07:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 06:15:12","window_to":"2026-09-09 07:15:12"} 
[2026-09-09 07:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 07:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 07:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 07:15:11","page":1} 
[2026-09-09 07:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 06:30:14","window_to":"2026-09-09 07:30:14"} 
[2026-09-09 07:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 07:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 07:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 07:30:14","page":1} 
[2026-09-09 07:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 06:45:13","window_to":"2026-09-09 07:45:13"} 
[2026-09-09 07:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 07:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 08:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 07:00:15","window_to":"2026-09-09 08:00:15"} 
[2026-09-09 08:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 07:45:13","page":1} 
[2026-09-09 08:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 08:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 08:00:28] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-09 07:00:27","window_to":"2026-09-09 08:00:28"} 
[2026-09-09 08:00:28] local.INFO: Payment reminders queued {"batches":1,"students":1} 
[2026-09-09 08:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 08:00:16","page":1} 
[2026-09-09 08:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 07:15:13","window_to":"2026-09-09 08:15:13"} 
[2026-09-09 08:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 08:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 08:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 08:15:13","page":1} 
[2026-09-09 08:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 07:30:15","window_to":"2026-09-09 08:30:15"} 
[2026-09-09 08:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 08:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 08:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 07:45:13","window_to":"2026-09-09 08:45:13"} 
[2026-09-09 08:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 08:30:15","page":1} 
[2026-09-09 08:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 08:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 09:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 08:45:13","page":1} 
[2026-09-09 09:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 08:00:16","window_to":"2026-09-09 09:00:16"} 
[2026-09-09 09:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 09:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 09:00:28] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-09 08:00:28","window_to":"2026-09-09 09:00:28"} 
[2026-09-09 09:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 09:00:16","page":1} 
[2026-09-09 09:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 08:15:13","window_to":"2026-09-09 09:15:13"} 
[2026-09-09 09:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 09:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 09:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 08:30:14","window_to":"2026-09-09 09:30:14"} 
[2026-09-09 09:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 09:15:13","page":1} 
[2026-09-09 09:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 09:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 09:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 09:30:14","page":1} 
[2026-09-09 09:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 08:45:13","window_to":"2026-09-09 09:45:13"} 
[2026-09-09 09:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 09:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 10:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 09:45:14","page":1} 
[2026-09-09 10:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 09:00:16","window_to":"2026-09-09 10:00:16"} 
[2026-09-09 10:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 10:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 10:00:28] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-09 09:00:28","window_to":"2026-09-09 10:00:28"} 
[2026-09-09 10:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 09:15:12","window_to":"2026-09-09 10:15:12"} 
[2026-09-09 10:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 10:00:15","page":1} 
[2026-09-09 10:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 10:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 10:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 09:30:15","window_to":"2026-09-09 10:30:15"} 
[2026-09-09 10:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 10:15:13","page":1} 
[2026-09-09 10:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 10:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 10:37:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 10:37:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 10:37:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 10:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 09:45:13","window_to":"2026-09-09 10:45:13"} 
[2026-09-09 10:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 10:30:15","page":1} 
[2026-09-09 10:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 10:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 10:46:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 10:46:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 10:46:48] local.WARNING: Permission route not configured; blocking request {"route":"GET /api/v1/admin/donors","user_id":1,"user_reg_no":"ADM001001","method":"GET","path":"/api/v1/admin/donors"} 
[2026-09-09 10:46:49] local.WARNING: Permission route not configured; blocking request {"route":"GET /api/v1/admin/donors","user_id":1,"user_reg_no":"ADM001001","method":"GET","path":"/api/v1/admin/donors"} 
[2026-09-09 11:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 10:00:16","window_to":"2026-09-09 11:00:16"} 
[2026-09-09 11:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 10:45:13","page":1} 
[2026-09-09 11:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 11:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 11:00:31] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-09 10:00:30","window_to":"2026-09-09 11:00:31"} 
[2026-09-09 11:08:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 11:08:47] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 11:08:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 11:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 11:00:18","page":1} 
[2026-09-09 11:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 10:15:14","window_to":"2026-09-09 11:15:14"} 
[2026-09-09 11:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 11:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 11:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 11:15:14","page":1} 
[2026-09-09 11:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 10:30:16","window_to":"2026-09-09 11:30:16"} 
[2026-09-09 11:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 11:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 11:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 10:45:13","window_to":"2026-09-09 11:45:13"} 
[2026-09-09 11:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 11:30:15","page":1} 
[2026-09-09 11:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 11:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 12:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 11:00:17","window_to":"2026-09-09 12:00:17"} 
[2026-09-09 12:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 11:45:14","page":1} 
[2026-09-09 12:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 12:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 12:00:32] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_09_12_00_31.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-09 12:00:32] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-09 11:00:31","window_to":"2026-09-09 12:00:31"} 
[2026-09-09 12:00:35] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_09_12_00_31.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-09 12:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 11:15:14","window_to":"2026-09-09 12:15:14"} 
[2026-09-09 12:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 12:00:17","page":1} 
[2026-09-09 12:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 12:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 12:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 11:30:15","window_to":"2026-09-09 12:30:15"} 
[2026-09-09 12:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 12:15:14","page":1} 
[2026-09-09 12:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 12:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 12:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 12:30:16","page":1} 
[2026-09-09 12:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 11:45:13","window_to":"2026-09-09 12:45:13"} 
[2026-09-09 12:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 12:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 13:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 12:00:15","window_to":"2026-09-09 13:00:15"} 
[2026-09-09 13:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 12:45:14","page":1} 
[2026-09-09 13:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 13:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 13:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-09 12:00:27","window_to":"2026-09-09 13:00:27"} 
[2026-09-09 13:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 13:00:15","page":1} 
[2026-09-09 13:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 12:15:13","window_to":"2026-09-09 13:15:14"} 
[2026-09-09 13:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 13:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 13:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 13:15:13","page":1} 
[2026-09-09 13:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 12:30:17","window_to":"2026-09-09 13:30:17"} 
[2026-09-09 13:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 13:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 13:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 12:45:13","window_to":"2026-09-09 13:45:13"} 
[2026-09-09 13:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 13:30:17","page":1} 
[2026-09-09 13:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 13:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 14:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 13:45:14","page":1} 
[2026-09-09 14:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 13:00:17","window_to":"2026-09-09 14:00:17"} 
[2026-09-09 14:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 14:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 14:00:29] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-09 13:00:29","window_to":"2026-09-09 14:00:29"} 
[2026-09-09 14:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 14:00:17","page":1} 
[2026-09-09 14:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 13:15:14","window_to":"2026-09-09 14:15:14"} 
[2026-09-09 14:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 14:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 14:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 14:15:14","page":1} 
[2026-09-09 14:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 13:30:16","window_to":"2026-09-09 14:30:16"} 
[2026-09-09 14:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 14:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 14:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 13:45:13","window_to":"2026-09-09 14:45:13"} 
[2026-09-09 14:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 14:30:16","page":1} 
[2026-09-09 14:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 14:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 15:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 14:45:14","page":1} 
[2026-09-09 15:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 14:00:16","window_to":"2026-09-09 15:00:17"} 
[2026-09-09 15:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 15:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 15:00:29] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-09 14:00:29","window_to":"2026-09-09 15:00:29"} 
[2026-09-09 15:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 15:00:16","page":1} 
[2026-09-09 15:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 14:15:14","window_to":"2026-09-09 15:15:14"} 
[2026-09-09 15:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 15:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 15:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 14:30:15","window_to":"2026-09-09 15:30:15"} 
[2026-09-09 15:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 15:15:13","page":1} 
[2026-09-09 15:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 15:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 15:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 15:30:15","page":1} 
[2026-09-09 15:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 14:45:12","window_to":"2026-09-09 15:45:12"} 
[2026-09-09 15:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 15:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 16:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 15:45:12","page":1} 
[2026-09-09 16:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 15:00:15","window_to":"2026-09-09 16:00:15"} 
[2026-09-09 16:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 16:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 16:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-09 15:00:26","window_to":"2026-09-09 16:00:26"} 
[2026-09-09 16:09:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 16:09:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 16:09:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 16:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 15:15:14","window_to":"2026-09-09 16:15:14"} 
[2026-09-09 16:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 16:00:14","page":1} 
[2026-09-09 16:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 16:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 16:16:30] local.ERROR: Gmail API error: Gmail API settings not configured  
[2026-09-09 16:16:30] local.WARNING: Gmail failed for staff credentials email, trying Zepto Mail {"gmail_error":"Gmail API settings not configured"} 
[2026-09-09 16:16:30] local.ERROR: ZeptoMailer error: Zepto Mail API key or admin email not configured  
[2026-09-09 16:16:30] local.WARNING: Failed to send staff credentials email {"staff_id":5,"error":"Zepto Mail API key or admin email not configured"} 
[2026-09-09 16:16:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 16:16:31] local.INFO: No FCM tokens found for user {"notification_id":30,"user_id":2} 
[2026-09-09 16:16:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 16:16:31] local.INFO: No FCM tokens found for user {"notification_id":31,"user_id":1} 
[2026-09-09 16:17:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 16:17:02] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 16:17:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 16:17:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 16:17:23] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/adms","user_id":10,"user_reg_no":"STF001002","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-09 16:17:34] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/adms","user_id":10,"user_reg_no":"STF001002","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-09 16:17:39] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/adms","user_id":10,"user_reg_no":"STF001002","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-09 16:17:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 16:17:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 16:17:43] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/adms","user_id":10,"user_reg_no":"STF001002","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-09 16:17:46] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/adms","user_id":10,"user_reg_no":"STF001002","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-09 16:19:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 16:19:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 16:19:55] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 16:19:55] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/adms","user_id":10,"user_reg_no":"STF001002","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-09 16:20:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 16:20:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 16:20:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 16:20:17] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/adms","user_id":10,"user_reg_no":"STF001002","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-09 16:21:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 16:21:34] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/adms","user_id":10,"user_reg_no":"STF001002","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-09 16:21:35] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/hr/payroll/stats","user_id":10,"user_reg_no":"STF001002","permissions":["hr.payroll.stats"],"permission_ids":[885]} 
[2026-09-09 16:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 15:30:14","window_to":"2026-09-09 16:30:14"} 
[2026-09-09 16:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 16:15:15","page":1} 
[2026-09-09 16:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 16:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 16:31:02] local.ERROR: Class "PDO" not found {"exception":"[object] (Error(code: 0): Class \"PDO\" not found at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:127)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1765): [constant expression]()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(270): Illuminate\\Database\\Connection::getResolver('pgsql')
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(75): Illuminate\\Database\\Connectors\\ConnectionFactory->createConnection('pgsql', Object(Closure), 'loyola_db', '', Array)
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(50): Illuminate\\Database\\Connectors\\ConnectionFactory->createSingleConnection(Array)
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php(203): Illuminate\\Database\\Connectors\\ConnectionFactory->make(Array, 'pgsql')
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php(102): Illuminate\\Database\\DatabaseManager->makeConnection('pgsql')
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php(193): Illuminate\\Database\\DatabaseManager->connection('pgsql')
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php(141): Illuminate\\Cache\\CacheManager->createDatabaseDriver(Array)
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php(119): Illuminate\\Cache\\CacheManager->build(Array)
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php(62): Illuminate\\Cache\\CacheManager->resolve('database')
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php(73): Illuminate\\Cache\\CacheManager->store('database')
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/CacheServiceProvider.php(35): Illuminate\\Cache\\CacheManager->driver(NULL)
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(1115): Illuminate\\Cache\\CacheServiceProvider->{closure:Illuminate\\Cache\\CacheServiceProvider::register():34}(Object(Illuminate\\Foundation\\Application), Array)
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(933): Illuminate\\Container\\Container->build(Object(Closure))
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1078): Illuminate\\Container\\Container->resolve('Illuminate\\\\Cach...', Array, true)
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(864): Illuminate\\Foundation\\Application->resolve('Illuminate\\\\Cach...', Array)
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1058): Illuminate\\Container\\Container->make('Illuminate\\\\Cach...', Array)
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(1805): Illuminate\\Foundation\\Application->make('Illuminate\\\\Cach...')
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(240): Illuminate\\Container\\Container->offsetGet('Illuminate\\\\Cach...')
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(211): Illuminate\\Support\\Facades\\Facade::resolveFacadeInstance('Illuminate\\\\Cach...')
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(357): Illuminate\\Support\\Facades\\Facade::getFacadeRoot()
#21 /var/www/html/api_loyala_backend/app/Providers/AppServiceProvider.php(123): Illuminate\\Support\\Facades\\Facade::__callStatic('for', Array)
#22 /var/www/html/api_loyala_backend/app/Providers/AppServiceProvider.php(34): App\\Providers\\AppServiceProvider->configureRateLimiting()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): App\\Providers\\AppServiceProvider->boot()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure(Object(Closure))
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod(Object(Illuminate\\Foundation\\Application), Array, Object(Closure))
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call(Object(Illuminate\\Foundation\\Application), Array, Array, NULL)
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1151): Illuminate\\Container\\Container->call(Array)
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1132): Illuminate\\Foundation\\Application->bootProvider(Object(App\\Providers\\AppServiceProvider))
#30 [internal function]: Illuminate\\Foundation\\Application->{closure:Illuminate\\Foundation\\Application::boot():1131}(Object(App\\Providers\\AppServiceProvider), 'App\\\\Providers\\\\A...')
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1131): array_walk(Array, Object(Closure))
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/BootProviders.php(17): Illuminate\\Foundation\\Application->boot()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(342): Illuminate\\Foundation\\Bootstrap\\BootProviders->bootstrap(Object(Illuminate\\Foundation\\Application))
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(494): Illuminate\\Foundation\\Application->bootstrapWith(Array)
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(196): Illuminate\\Foundation\\Console\\Kernel->bootstrap()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#37 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand(Object(Symfony\\Component\\Console\\Input\\ArgvInput))
#38 {main}
"} 
[2026-09-09 16:38:27] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/adms","user_id":10,"user_reg_no":"STF001002","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-09 16:38:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 16:39:55] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 16:39:55] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 16:40:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 16:40:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 16:41:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 16:41:18] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/hr/departments","user_id":10,"user_reg_no":"STF001002","permissions":["hr.departments.view"],"permission_ids":[902]} 
[2026-09-09 16:41:19] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/hr/departments","user_id":10,"user_reg_no":"STF001002","permissions":["hr.departments.view"],"permission_ids":[902]} 
[2026-09-09 16:41:19] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/adms","user_id":10,"user_reg_no":"STF001002","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-09 16:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 15:45:14","window_to":"2026-09-09 16:45:14"} 
[2026-09-09 16:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 16:30:14","page":1} 
[2026-09-09 16:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 16:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 17:00:27] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 16:00:26","window_to":"2026-09-09 17:00:26"} 
[2026-09-09 17:00:27] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 16:45:15","page":1} 
[2026-09-09 17:00:31] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 17:00:31] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 17:00:48] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-09 16:00:48","window_to":"2026-09-09 17:00:48"} 
[2026-09-09 17:15:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 16:15:22","window_to":"2026-09-09 17:15:22"} 
[2026-09-09 17:15:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 17:00:27","page":1} 
[2026-09-09 17:15:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 17:15:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 17:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 17:15:22","page":1} 
[2026-09-09 17:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 17:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 17:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 16:30:16","window_to":"2026-09-09 17:30:17"} 
[2026-09-09 17:31:54] local.ERROR: include(/var/www/html/api_loyala_backend/vendor/composer/../laravel/framework/src/Illuminate/Queue/WorkerStopReason.php): Failed to open stream: No such file or directory {"exception":"[object] (ErrorException(code: 0): include(/var/www/html/api_loyala_backend/vendor/composer/../laravel/framework/src/Illuminate/Queue/WorkerStopReason.php): Failed to open stream: No such file or directory at /var/www/html/api_loyala_backend/vendor/composer/ClassLoader.php:576)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php(262): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError()
#1 /var/www/html/api_loyala_backend/vendor/composer/ClassLoader.php(576): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->{closure:Illuminate\\Foundation\\Bootstrap\\HandleExceptions::forwardsTo():261}()
#2 /var/www/html/api_loyala_backend/vendor/composer/ClassLoader.php(576): include('...')
#3 /var/www/html/api_loyala_backend/vendor/composer/ClassLoader.php(427): {closure:Composer\\Autoload\\ClassLoader::initializeIncludeClosure():575}()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(348): Composer\\Autoload\\ClassLoader->loadClass()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(230): Illuminate\\Queue\\Worker->stopIfNecessary()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(149): Illuminate\\Queue\\Worker->daemon()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(132): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#16 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#17 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#18 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#21 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#22 {main}
"} 
[2026-09-09 17:44:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 17:44:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 17:44:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 17:44:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 17:44:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 17:44:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 17:44:15] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/adms","user_id":10,"user_reg_no":"STF001002","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-09 17:44:16] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/hr/payroll/stats","user_id":10,"user_reg_no":"STF001002","permissions":["hr.payroll.stats"],"permission_ids":[885]} 
[2026-09-09 17:44:16] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/hr/payroll/stats","user_id":10,"user_reg_no":"STF001002","permissions":["hr.payroll.stats"],"permission_ids":[885]} 
[2026-09-09 17:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 17:30:14","page":1} 
[2026-09-09 17:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 16:45:12","window_to":"2026-09-09 17:45:12"} 
[2026-09-09 17:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 17:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 18:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 17:45:12","page":1} 
[2026-09-09 18:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 17:00:15","window_to":"2026-09-09 18:00:16"} 
[2026-09-09 18:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 18:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 18:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-09 17:00:26","window_to":"2026-09-09 18:00:26"} 
[2026-09-09 18:03:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 18:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 17:15:13","window_to":"2026-09-09 18:15:13"} 
[2026-09-09 18:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 18:00:14","page":1} 
[2026-09-09 18:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 18:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 18:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 17:30:15","window_to":"2026-09-09 18:30:15"} 
[2026-09-09 18:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 18:15:13","page":1} 
[2026-09-09 18:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 18:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 18:39:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 18:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 18:30:15","page":1} 
[2026-09-09 18:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 17:45:14","window_to":"2026-09-09 18:45:14"} 
[2026-09-09 18:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 18:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 18:47:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 18:47:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 18:47:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 18:47:50] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 19:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 18:00:15","window_to":"2026-09-09 19:00:15"} 
[2026-09-09 19:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 18:45:13","page":1} 
[2026-09-09 19:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 19:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 19:00:29] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-09 18:00:29","window_to":"2026-09-09 19:00:29"} 
[2026-09-09 19:06:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-09 19:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 19:00:16","page":1} 
[2026-09-09 19:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 18:15:13","window_to":"2026-09-09 19:15:13"} 
[2026-09-09 19:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 19:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 19:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 19:15:13","page":1} 
[2026-09-09 19:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 18:30:13","window_to":"2026-09-09 19:30:13"} 
[2026-09-09 19:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 19:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 19:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 19:30:14","page":1} 
[2026-09-09 19:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 18:45:14","window_to":"2026-09-09 19:45:14"} 
[2026-09-09 19:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 19:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 20:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 19:00:14","window_to":"2026-09-09 20:00:14"} 
[2026-09-09 20:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 19:45:14","page":1} 
[2026-09-09 20:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 20:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 20:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-09 19:00:26","window_to":"2026-09-09 20:00:26"} 
[2026-09-09 20:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 20:00:15","page":1} 
[2026-09-09 20:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 19:15:13","window_to":"2026-09-09 20:15:13"} 
[2026-09-09 20:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 20:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 20:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 20:15:13","page":1} 
[2026-09-09 20:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 19:30:16","window_to":"2026-09-09 20:30:16"} 
[2026-09-09 20:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 20:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 20:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 20:30:17","page":1} 
[2026-09-09 20:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 19:45:13","window_to":"2026-09-09 20:45:13"} 
[2026-09-09 20:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 20:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 21:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 20:00:14","window_to":"2026-09-09 21:00:15"} 
[2026-09-09 21:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 20:45:13","page":1} 
[2026-09-09 21:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 21:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 21:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-09 20:00:27","window_to":"2026-09-09 21:00:27"} 
[2026-09-09 21:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 21:00:15","page":1} 
[2026-09-09 21:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 20:15:12","window_to":"2026-09-09 21:15:13"} 
[2026-09-09 21:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 21:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 21:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 21:15:13","page":1} 
[2026-09-09 21:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 20:30:13","window_to":"2026-09-09 21:30:13"} 
[2026-09-09 21:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 21:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 21:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 21:30:13","page":1} 
[2026-09-09 21:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 20:45:13","window_to":"2026-09-09 21:45:13"} 
[2026-09-09 21:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 21:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 22:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 21:00:16","window_to":"2026-09-09 22:00:16"} 
[2026-09-09 22:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 21:45:12","page":1} 
[2026-09-09 22:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 22:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 22:00:28] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-09 21:00:28","window_to":"2026-09-09 22:00:28"} 
[2026-09-09 22:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 22:00:17","page":1} 
[2026-09-09 22:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 22:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 21:15:12","window_to":"2026-09-09 22:15:12"} 
[2026-09-09 22:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 22:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 22:15:11","page":1} 
[2026-09-09 22:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 21:30:13","window_to":"2026-09-09 22:30:14"} 
[2026-09-09 22:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 22:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 22:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 22:30:14","page":1} 
[2026-09-09 22:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 21:45:14","window_to":"2026-09-09 22:45:14"} 
[2026-09-09 22:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 22:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 23:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 22:00:14","window_to":"2026-09-09 23:00:14"} 
[2026-09-09 23:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 22:45:13","page":1} 
[2026-09-09 23:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 23:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 23:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-09 22:00:26","window_to":"2026-09-09 23:00:26"} 
[2026-09-09 23:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 23:00:15","page":1} 
[2026-09-09 23:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 22:15:11","window_to":"2026-09-09 23:15:12"} 
[2026-09-09 23:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 23:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 23:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 23:15:12","page":1} 
[2026-09-09 23:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 22:30:14","window_to":"2026-09-09 23:30:14"} 
[2026-09-09 23:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 23:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-09 23:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 23:30:14","page":1} 
[2026-09-09 23:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 22:45:12","window_to":"2026-09-09 23:45:12"} 
[2026-09-09 23:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-09 23:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 00:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-09 23:45:12","page":1} 
[2026-09-10 00:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 23:00:13","window_to":"2026-09-10 00:00:13"} 
[2026-09-10 00:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 00:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 00:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-09 23:00:27","window_to":"2026-09-10 00:00:27"} 
[2026-09-10 00:00:28] local.INFO: Student payment status check queued {"batches":1,"students":1} 
[2026-09-10 00:00:31] local.INFO: Student payment status cron evaluated {"student_id":5,"admission_no":"26/000001","outstanding_amount":24000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-10 00:00:33] local.INFO: Automated database backup created successfully: backup_2026_09_10_00_00_27.sql  
[2026-09-10 00:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 23:15:11","window_to":"2026-09-10 00:15:11"} 
[2026-09-10 00:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 00:00:13","page":1} 
[2026-09-10 00:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 00:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 00:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 00:15:12","page":1} 
[2026-09-10 00:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 23:30:13","window_to":"2026-09-10 00:30:13"} 
[2026-09-10 00:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 00:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 00:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-09 23:45:11","window_to":"2026-09-10 00:45:11"} 
[2026-09-10 00:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 00:30:13","page":1} 
[2026-09-10 00:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 00:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 01:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 00:45:12","page":1} 
[2026-09-10 01:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 00:00:14","window_to":"2026-09-10 01:00:14"} 
[2026-09-10 01:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 01:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 01:00:28] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-10 00:00:28","window_to":"2026-09-10 01:00:28"} 
[2026-09-10 01:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 01:00:14","page":1} 
[2026-09-10 01:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 00:15:13","window_to":"2026-09-10 01:15:13"} 
[2026-09-10 01:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 01:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 01:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 00:30:14","window_to":"2026-09-10 01:30:14"} 
[2026-09-10 01:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 01:15:13","page":1} 
[2026-09-10 01:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 01:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 01:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 01:30:14","page":1} 
[2026-09-10 01:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 00:45:12","window_to":"2026-09-10 01:45:12"} 
[2026-09-10 01:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 01:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 02:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 01:00:14","window_to":"2026-09-10 02:00:14"} 
[2026-09-10 02:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 01:45:12","page":1} 
[2026-09-10 02:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 02:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 02:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-10 01:00:26","window_to":"2026-09-10 02:00:26"} 
[2026-09-10 02:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 02:00:15","page":1} 
[2026-09-10 02:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 01:15:10","window_to":"2026-09-10 02:15:10"} 
[2026-09-10 02:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 02:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 02:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 01:30:12","window_to":"2026-09-10 02:30:13"} 
[2026-09-10 02:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 02:15:11","page":1} 
[2026-09-10 02:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 02:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 02:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 01:45:11","window_to":"2026-09-10 02:45:12"} 
[2026-09-10 02:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 02:30:13","page":1} 
[2026-09-10 02:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 02:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 03:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 02:45:12","page":1} 
[2026-09-10 03:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 02:00:13","window_to":"2026-09-10 03:00:14"} 
[2026-09-10 03:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 03:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 03:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-10 02:00:23","window_to":"2026-09-10 03:00:24"} 
[2026-09-10 03:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 03:00:13","page":1} 
[2026-09-10 03:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 02:15:13","window_to":"2026-09-10 03:15:13"} 
[2026-09-10 03:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 03:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 03:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 02:30:12","window_to":"2026-09-10 03:30:13"} 
[2026-09-10 03:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 03:15:12","page":1} 
[2026-09-10 03:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 03:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 03:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 03:30:13","page":1} 
[2026-09-10 03:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 02:45:11","window_to":"2026-09-10 03:45:11"} 
[2026-09-10 03:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 03:45:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 04:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 03:45:11","page":1} 
[2026-09-10 04:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 03:00:13","window_to":"2026-09-10 04:00:13"} 
[2026-09-10 04:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 04:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 04:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-10 03:00:24","window_to":"2026-09-10 04:00:24"} 
[2026-09-10 04:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 04:00:13","page":1} 
[2026-09-10 04:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 03:15:11","window_to":"2026-09-10 04:15:11"} 
[2026-09-10 04:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 04:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 04:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 03:30:12","window_to":"2026-09-10 04:30:12"} 
[2026-09-10 04:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 04:15:11","page":1} 
[2026-09-10 04:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 04:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 04:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 04:30:13","page":1} 
[2026-09-10 04:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 04:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 03:45:12","window_to":"2026-09-10 04:45:12"} 
[2026-09-10 04:45:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 05:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 04:00:12","window_to":"2026-09-10 05:00:12"} 
[2026-09-10 05:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 04:45:11","page":1} 
[2026-09-10 05:00:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 05:00:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 05:00:23] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-10 04:00:22","window_to":"2026-09-10 05:00:23"} 
[2026-09-10 05:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 04:15:11","window_to":"2026-09-10 05:15:11"} 
[2026-09-10 05:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 05:00:12","page":1} 
[2026-09-10 05:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 05:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 05:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 05:15:11","page":1} 
[2026-09-10 05:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 04:30:14","window_to":"2026-09-10 05:30:14"} 
[2026-09-10 05:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 05:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 05:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 05:30:14","page":1} 
[2026-09-10 05:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 04:45:11","window_to":"2026-09-10 05:45:11"} 
[2026-09-10 05:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 05:45:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 06:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 05:00:14","window_to":"2026-09-10 06:00:14"} 
[2026-09-10 06:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 05:45:11","page":1} 
[2026-09-10 06:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 06:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 06:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-10 05:00:24","window_to":"2026-09-10 06:00:24"} 
[2026-09-10 06:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 05:15:11","window_to":"2026-09-10 06:15:11"} 
[2026-09-10 06:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 06:00:14","page":1} 
[2026-09-10 06:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 06:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 06:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 05:30:13","window_to":"2026-09-10 06:30:13"} 
[2026-09-10 06:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 06:15:11","page":1} 
[2026-09-10 06:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 06:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 06:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 05:45:11","window_to":"2026-09-10 06:45:11"} 
[2026-09-10 06:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 06:30:14","page":1} 
[2026-09-10 06:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 06:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 07:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 06:45:12","page":1} 
[2026-09-10 07:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 06:00:14","window_to":"2026-09-10 07:00:14"} 
[2026-09-10 07:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 07:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 07:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-10 06:00:24","window_to":"2026-09-10 07:00:24"} 
[2026-09-10 07:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 07:00:14","page":1} 
[2026-09-10 07:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 06:15:12","window_to":"2026-09-10 07:15:13"} 
[2026-09-10 07:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 07:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 07:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 07:15:12","page":1} 
[2026-09-10 07:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 06:30:13","window_to":"2026-09-10 07:30:13"} 
[2026-09-10 07:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 07:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 07:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 07:30:13","page":1} 
[2026-09-10 07:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 06:45:14","window_to":"2026-09-10 07:45:14"} 
[2026-09-10 07:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 07:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 08:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 07:45:13","page":1} 
[2026-09-10 08:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 07:00:14","window_to":"2026-09-10 08:00:14"} 
[2026-09-10 08:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 08:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 08:00:28] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-10 07:00:27","window_to":"2026-09-10 08:00:27"} 
[2026-09-10 08:00:28] local.INFO: Payment reminders queued {"batches":1,"students":1} 
[2026-09-10 08:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 08:00:14","page":1} 
[2026-09-10 08:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 07:15:12","window_to":"2026-09-10 08:15:12"} 
[2026-09-10 08:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 08:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 08:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 08:15:12","page":1} 
[2026-09-10 08:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 07:30:15","window_to":"2026-09-10 08:30:15"} 
[2026-09-10 08:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 08:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 08:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 08:30:15","page":1} 
[2026-09-10 08:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 07:45:14","window_to":"2026-09-10 08:45:14"} 
[2026-09-10 08:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 08:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 09:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 08:45:14","page":1} 
[2026-09-10 09:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 08:00:15","window_to":"2026-09-10 09:00:15"} 
[2026-09-10 09:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 09:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 09:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-10 08:00:26","window_to":"2026-09-10 09:00:26"} 
[2026-09-10 09:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 08:15:12","window_to":"2026-09-10 09:15:12"} 
[2026-09-10 09:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 09:00:15","page":1} 
[2026-09-10 09:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 09:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 09:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 09:15:13","page":1} 
[2026-09-10 09:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 08:30:15","window_to":"2026-09-10 09:30:15"} 
[2026-09-10 09:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 09:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 09:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 08:45:12","window_to":"2026-09-10 09:45:12"} 
[2026-09-10 09:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 09:30:15","page":1} 
[2026-09-10 09:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 09:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 10:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 09:00:14","window_to":"2026-09-10 10:00:14"} 
[2026-09-10 10:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 09:45:13","page":1} 
[2026-09-10 10:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 10:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 10:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-10 09:00:26","window_to":"2026-09-10 10:00:26"} 
[2026-09-10 10:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 09:15:13","window_to":"2026-09-10 10:15:13"} 
[2026-09-10 10:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 10:00:15","page":1} 
[2026-09-10 10:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 10:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 10:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 09:30:13","window_to":"2026-09-10 10:30:13"} 
[2026-09-10 10:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 10:15:13","page":1} 
[2026-09-10 10:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 10:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 10:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 09:45:13","window_to":"2026-09-10 10:45:13"} 
[2026-09-10 10:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 10:30:14","page":1} 
[2026-09-10 10:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 10:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 11:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 10:00:15","window_to":"2026-09-10 11:00:15"} 
[2026-09-10 11:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 10:45:14","page":1} 
[2026-09-10 11:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 11:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 11:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-10 10:00:26","window_to":"2026-09-10 11:00:26"} 
[2026-09-10 11:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 11:00:15","page":1} 
[2026-09-10 11:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 10:15:14","window_to":"2026-09-10 11:15:14"} 
[2026-09-10 11:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 11:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 11:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 11:15:14","page":1} 
[2026-09-10 11:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 10:30:13","window_to":"2026-09-10 11:30:14"} 
[2026-09-10 11:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 11:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 11:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 10:45:13","window_to":"2026-09-10 11:45:13"} 
[2026-09-10 11:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 11:30:14","page":1} 
[2026-09-10 11:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 11:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 12:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 11:45:14","page":1} 
[2026-09-10 12:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 11:00:15","window_to":"2026-09-10 12:00:15"} 
[2026-09-10 12:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 12:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 12:00:30] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-10 11:00:30","window_to":"2026-09-10 12:00:30"} 
[2026-09-10 12:00:35] local.INFO: Automated database backup created successfully: backup_2026_09_10_12_00_30.sql  
[2026-09-10 12:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 11:15:13","window_to":"2026-09-10 12:15:13"} 
[2026-09-10 12:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 12:00:15","page":1} 
[2026-09-10 12:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 12:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 12:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 11:30:15","window_to":"2026-09-10 12:30:16"} 
[2026-09-10 12:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 12:15:13","page":1} 
[2026-09-10 12:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 12:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 12:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 12:30:16","page":1} 
[2026-09-10 12:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 11:45:14","window_to":"2026-09-10 12:45:15"} 
[2026-09-10 12:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 12:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 13:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 12:45:14","page":1} 
[2026-09-10 13:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 12:00:16","window_to":"2026-09-10 13:00:17"} 
[2026-09-10 13:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 13:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 13:00:30] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-10 12:00:30","window_to":"2026-09-10 13:00:30"} 
[2026-09-10 13:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 13:00:17","page":1} 
[2026-09-10 13:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 12:15:15","window_to":"2026-09-10 13:15:15"} 
[2026-09-10 13:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 13:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 13:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 12:30:15","window_to":"2026-09-10 13:30:15"} 
[2026-09-10 13:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 13:15:15","page":1} 
[2026-09-10 13:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 13:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 13:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 12:45:13","window_to":"2026-09-10 13:45:14"} 
[2026-09-10 13:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 13:30:16","page":1} 
[2026-09-10 13:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 13:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 14:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 13:45:14","page":1} 
[2026-09-10 14:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 13:00:16","window_to":"2026-09-10 14:00:16"} 
[2026-09-10 14:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 14:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 14:00:29] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-10 13:00:29","window_to":"2026-09-10 14:00:29"} 
[2026-09-10 14:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 14:00:16","page":1} 
[2026-09-10 14:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 13:15:13","window_to":"2026-09-10 14:15:13"} 
[2026-09-10 14:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 14:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 14:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 13:30:14","window_to":"2026-09-10 14:30:14"} 
[2026-09-10 14:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 14:15:13","page":1} 
[2026-09-10 14:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 14:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 14:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 13:45:14","window_to":"2026-09-10 14:45:14"} 
[2026-09-10 14:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 14:30:15","page":1} 
[2026-09-10 14:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 14:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 15:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 14:00:14","window_to":"2026-09-10 15:00:14"} 
[2026-09-10 15:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 14:45:15","page":1} 
[2026-09-10 15:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 15:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 15:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-10 14:00:25","window_to":"2026-09-10 15:00:26"} 
[2026-09-10 15:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 14:15:13","window_to":"2026-09-10 15:15:14"} 
[2026-09-10 15:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 15:00:15","page":1} 
[2026-09-10 15:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 15:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 15:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 15:15:14","page":1} 
[2026-09-10 15:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 14:30:14","window_to":"2026-09-10 15:30:15"} 
[2026-09-10 15:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 15:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 15:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 14:45:14","window_to":"2026-09-10 15:45:14"} 
[2026-09-10 15:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 15:30:15","page":1} 
[2026-09-10 15:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 15:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 16:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 15:45:14","page":1} 
[2026-09-10 16:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 15:00:14","window_to":"2026-09-10 16:00:14"} 
[2026-09-10 16:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 16:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 16:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-10 15:00:25","window_to":"2026-09-10 16:00:26"} 
[2026-09-10 16:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 16:00:14","page":1} 
[2026-09-10 16:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 15:15:13","window_to":"2026-09-10 16:15:13"} 
[2026-09-10 16:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 16:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 16:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 15:30:14","window_to":"2026-09-10 16:30:14"} 
[2026-09-10 16:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 16:15:13","page":1} 
[2026-09-10 16:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 16:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 16:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 15:45:12","window_to":"2026-09-10 16:45:12"} 
[2026-09-10 16:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 16:30:15","page":1} 
[2026-09-10 16:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 16:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 17:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 16:00:14","window_to":"2026-09-10 17:00:14"} 
[2026-09-10 17:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 16:45:14","page":1} 
[2026-09-10 17:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 17:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 17:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-10 16:00:25","window_to":"2026-09-10 17:00:25"} 
[2026-09-10 17:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 17:00:14","page":1} 
[2026-09-10 17:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 16:15:12","window_to":"2026-09-10 17:15:12"} 
[2026-09-10 17:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 17:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 17:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 17:15:12","page":1} 
[2026-09-10 17:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 16:30:13","window_to":"2026-09-10 17:30:13"} 
[2026-09-10 17:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 17:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 17:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 16:45:12","window_to":"2026-09-10 17:45:12"} 
[2026-09-10 17:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 17:30:13","page":1} 
[2026-09-10 17:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 17:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 18:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 17:45:13","page":1} 
[2026-09-10 18:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 17:00:14","window_to":"2026-09-10 18:00:14"} 
[2026-09-10 18:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 18:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 18:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-10 17:00:25","window_to":"2026-09-10 18:00:25"} 
[2026-09-10 18:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 18:00:14","page":1} 
[2026-09-10 18:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 17:15:12","window_to":"2026-09-10 18:15:12"} 
[2026-09-10 18:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 18:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 18:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 18:15:12","page":1} 
[2026-09-10 18:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 17:30:14","window_to":"2026-09-10 18:30:15"} 
[2026-09-10 18:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 18:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 18:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 17:45:14","window_to":"2026-09-10 18:45:14"} 
[2026-09-10 18:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 18:30:15","page":1} 
[2026-09-10 18:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 18:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 19:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 18:00:15","window_to":"2026-09-10 19:00:15"} 
[2026-09-10 19:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 18:45:14","page":1} 
[2026-09-10 19:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 19:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 19:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-10 18:00:27","window_to":"2026-09-10 19:00:27"} 
[2026-09-10 19:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 19:00:15","page":1} 
[2026-09-10 19:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 18:15:13","window_to":"2026-09-10 19:15:13"} 
[2026-09-10 19:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 19:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 19:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 18:30:13","window_to":"2026-09-10 19:30:13"} 
[2026-09-10 19:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 19:15:12","page":1} 
[2026-09-10 19:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 19:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 19:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 19:30:13","page":1} 
[2026-09-10 19:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 18:45:13","window_to":"2026-09-10 19:45:13"} 
[2026-09-10 19:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 19:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 20:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 19:00:13","window_to":"2026-09-10 20:00:14"} 
[2026-09-10 20:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 19:45:13","page":1} 
[2026-09-10 20:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 20:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 20:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-10 19:00:25","window_to":"2026-09-10 20:00:25"} 
[2026-09-10 20:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 20:00:14","page":1} 
[2026-09-10 20:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 19:15:12","window_to":"2026-09-10 20:15:12"} 
[2026-09-10 20:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 20:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 20:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 19:30:14","window_to":"2026-09-10 20:30:14"} 
[2026-09-10 20:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 20:15:12","page":1} 
[2026-09-10 20:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 20:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 20:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 20:30:14","page":1} 
[2026-09-10 20:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 19:45:12","window_to":"2026-09-10 20:45:12"} 
[2026-09-10 20:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 20:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 21:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 20:00:15","window_to":"2026-09-10 21:00:16"} 
[2026-09-10 21:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 20:45:12","page":1} 
[2026-09-10 21:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 21:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 21:00:28] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-10 20:00:28","window_to":"2026-09-10 21:00:28"} 
[2026-09-10 21:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 21:00:17","page":1} 
[2026-09-10 21:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 20:15:12","window_to":"2026-09-10 21:15:12"} 
[2026-09-10 21:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 21:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 21:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 20:30:12","window_to":"2026-09-10 21:30:13"} 
[2026-09-10 21:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 21:15:12","page":1} 
[2026-09-10 21:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 21:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 21:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 21:30:13","page":1} 
[2026-09-10 21:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 20:45:14","window_to":"2026-09-10 21:45:14"} 
[2026-09-10 21:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 21:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 22:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 21:45:14","page":1} 
[2026-09-10 22:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 21:00:15","window_to":"2026-09-10 22:00:15"} 
[2026-09-10 22:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 22:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 22:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-10 21:00:26","window_to":"2026-09-10 22:00:26"} 
[2026-09-10 22:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 21:15:11","window_to":"2026-09-10 22:15:11"} 
[2026-09-10 22:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 22:00:15","page":1} 
[2026-09-10 22:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 22:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 22:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 21:30:15","window_to":"2026-09-10 22:30:15"} 
[2026-09-10 22:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 22:15:12","page":1} 
[2026-09-10 22:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 22:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 22:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 22:30:15","page":1} 
[2026-09-10 22:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 21:45:12","window_to":"2026-09-10 22:45:12"} 
[2026-09-10 22:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 22:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 23:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 22:45:12","page":1} 
[2026-09-10 23:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 22:00:14","window_to":"2026-09-10 23:00:14"} 
[2026-09-10 23:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 23:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 23:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-10 22:00:25","window_to":"2026-09-10 23:00:25"} 
[2026-09-10 23:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 23:00:14","page":1} 
[2026-09-10 23:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 22:15:12","window_to":"2026-09-10 23:15:12"} 
[2026-09-10 23:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 23:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 23:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 23:15:12","page":1} 
[2026-09-10 23:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 22:30:13","window_to":"2026-09-10 23:30:13"} 
[2026-09-10 23:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 23:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-10 23:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 22:45:12","window_to":"2026-09-10 23:45:12"} 
[2026-09-10 23:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 23:30:13","page":1} 
[2026-09-10 23:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-10 23:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 00:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-10 23:45:13","page":1} 
[2026-09-11 00:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 23:00:14","window_to":"2026-09-11 00:00:14"} 
[2026-09-11 00:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 00:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 00:00:29] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-10 23:00:28","window_to":"2026-09-11 00:00:28"} 
[2026-09-11 00:00:29] local.INFO: Student payment status check queued {"batches":1,"students":1} 
[2026-09-11 00:00:30] local.INFO: Student payment status cron evaluated {"student_id":5,"admission_no":"26/000001","outstanding_amount":24000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-11 00:00:35] local.INFO: Automated database backup created successfully: backup_2026_09_11_00_00_29.sql  
[2026-09-11 00:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 00:00:14","page":1} 
[2026-09-11 00:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 23:15:13","window_to":"2026-09-11 00:15:13"} 
[2026-09-11 00:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 00:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 00:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 23:30:13","window_to":"2026-09-11 00:30:13"} 
[2026-09-11 00:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 00:15:13","page":1} 
[2026-09-11 00:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 00:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 00:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 00:30:14","page":1} 
[2026-09-11 00:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-10 23:45:12","window_to":"2026-09-11 00:45:12"} 
[2026-09-11 00:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 00:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 01:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 00:00:14","window_to":"2026-09-11 01:00:14"} 
[2026-09-11 01:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 00:45:12","page":1} 
[2026-09-11 01:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 01:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 01:00:29] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-11 00:00:28","window_to":"2026-09-11 01:00:28"} 
[2026-09-11 01:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 01:00:14","page":1} 
[2026-09-11 01:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 00:15:12","window_to":"2026-09-11 01:15:12"} 
[2026-09-11 01:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 01:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 01:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 01:15:12","page":1} 
[2026-09-11 01:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 00:30:13","window_to":"2026-09-11 01:30:13"} 
[2026-09-11 01:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 01:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 01:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 01:30:13","page":1} 
[2026-09-11 01:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 00:45:12","window_to":"2026-09-11 01:45:12"} 
[2026-09-11 01:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 01:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 02:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 01:45:12","page":1} 
[2026-09-11 02:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 01:00:14","window_to":"2026-09-11 02:00:14"} 
[2026-09-11 02:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 02:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 02:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-11 01:00:25","window_to":"2026-09-11 02:00:25"} 
[2026-09-11 02:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 02:00:14","page":1} 
[2026-09-11 02:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 01:15:12","window_to":"2026-09-11 02:15:12"} 
[2026-09-11 02:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 02:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 02:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 02:15:12","page":1} 
[2026-09-11 02:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 01:30:13","window_to":"2026-09-11 02:30:13"} 
[2026-09-11 02:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 02:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 02:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 01:45:11","window_to":"2026-09-11 02:45:11"} 
[2026-09-11 02:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 02:30:13","page":1} 
[2026-09-11 02:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 02:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 03:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 02:00:12","window_to":"2026-09-11 03:00:13"} 
[2026-09-11 03:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 02:45:12","page":1} 
[2026-09-11 03:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 03:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 03:00:23] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-11 02:00:23","window_to":"2026-09-11 03:00:23"} 
[2026-09-11 03:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 03:00:13","page":1} 
[2026-09-11 03:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 02:15:11","window_to":"2026-09-11 03:15:11"} 
[2026-09-11 03:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 03:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 03:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 02:30:12","window_to":"2026-09-11 03:30:12"} 
[2026-09-11 03:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 03:15:11","page":1} 
[2026-09-11 03:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 03:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 03:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 02:45:10","window_to":"2026-09-11 03:45:11"} 
[2026-09-11 03:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 03:30:14","page":1} 
[2026-09-11 03:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 03:45:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 04:00:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 03:00:12","window_to":"2026-09-11 04:00:12"} 
[2026-09-11 04:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 03:45:11","page":1} 
[2026-09-11 04:00:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 04:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 04:00:23] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-11 03:00:23","window_to":"2026-09-11 04:00:23"} 
[2026-09-11 04:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 04:00:13","page":1} 
[2026-09-11 04:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 03:15:11","window_to":"2026-09-11 04:15:11"} 
[2026-09-11 04:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 04:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 04:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 03:30:13","window_to":"2026-09-11 04:30:13"} 
[2026-09-11 04:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 04:15:11","page":1} 
[2026-09-11 04:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 04:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 04:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 03:45:11","window_to":"2026-09-11 04:45:11"} 
[2026-09-11 04:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 04:30:13","page":1} 
[2026-09-11 04:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 04:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 05:00:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 04:00:12","window_to":"2026-09-11 05:00:12"} 
[2026-09-11 05:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 04:45:12","page":1} 
[2026-09-11 05:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 05:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 05:00:23] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-11 04:00:23","window_to":"2026-09-11 05:00:23"} 
[2026-09-11 05:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 05:00:13","page":1} 
[2026-09-11 05:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 04:15:11","window_to":"2026-09-11 05:15:11"} 
[2026-09-11 05:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 05:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 05:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 04:30:15","window_to":"2026-09-11 05:30:15"} 
[2026-09-11 05:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 05:15:11","page":1} 
[2026-09-11 05:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 05:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 05:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 04:45:12","window_to":"2026-09-11 05:45:12"} 
[2026-09-11 05:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 05:30:15","page":1} 
[2026-09-11 05:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 05:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 06:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 05:45:12","page":1} 
[2026-09-11 06:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 05:00:13","window_to":"2026-09-11 06:00:14"} 
[2026-09-11 06:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 06:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 06:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-11 05:00:24","window_to":"2026-09-11 06:00:24"} 
[2026-09-11 06:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 05:15:11","window_to":"2026-09-11 06:15:12"} 
[2026-09-11 06:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 06:00:13","page":1} 
[2026-09-11 06:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 06:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 06:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 05:30:14","window_to":"2026-09-11 06:30:14"} 
[2026-09-11 06:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 06:15:12","page":1} 
[2026-09-11 06:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 06:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 06:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 06:30:15","page":1} 
[2026-09-11 06:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 05:45:12","window_to":"2026-09-11 06:45:12"} 
[2026-09-11 06:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 06:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 07:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 06:00:13","window_to":"2026-09-11 07:00:14"} 
[2026-09-11 07:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 06:45:12","page":1} 
[2026-09-11 07:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 07:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 07:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-11 06:00:26","window_to":"2026-09-11 07:00:26"} 
[2026-09-11 07:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 06:15:12","window_to":"2026-09-11 07:15:12"} 
[2026-09-11 07:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 07:00:14","page":1} 
[2026-09-11 07:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 07:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 07:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 06:30:15","window_to":"2026-09-11 07:30:15"} 
[2026-09-11 07:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 07:15:13","page":1} 
[2026-09-11 07:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 07:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 07:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 07:30:15","page":1} 
[2026-09-11 07:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 06:45:12","window_to":"2026-09-11 07:45:13"} 
[2026-09-11 07:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 07:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 08:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 07:45:12","page":1} 
[2026-09-11 08:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 07:00:14","window_to":"2026-09-11 08:00:14"} 
[2026-09-11 08:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 08:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 08:00:27] local.INFO: Payment reminders queued {"batches":1,"students":1} 
[2026-09-11 08:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-11 07:00:26","window_to":"2026-09-11 08:00:26"} 
[2026-09-11 08:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 07:15:12","window_to":"2026-09-11 08:15:12"} 
[2026-09-11 08:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 08:00:14","page":1} 
[2026-09-11 08:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 08:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 08:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 07:30:13","window_to":"2026-09-11 08:30:13"} 
[2026-09-11 08:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 08:15:13","page":1} 
[2026-09-11 08:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 08:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 08:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 07:45:11","window_to":"2026-09-11 08:45:11"} 
[2026-09-11 08:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 08:30:14","page":1} 
[2026-09-11 08:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 08:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 09:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 08:45:12","page":1} 
[2026-09-11 09:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 08:00:13","window_to":"2026-09-11 09:00:13"} 
[2026-09-11 09:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 09:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 09:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-11 08:00:24","window_to":"2026-09-11 09:00:24"} 
[2026-09-11 09:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 09:00:13","page":1} 
[2026-09-11 09:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 08:15:11","window_to":"2026-09-11 09:15:12"} 
[2026-09-11 09:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 09:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 09:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 09:15:11","page":1} 
[2026-09-11 09:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 08:30:14","window_to":"2026-09-11 09:30:14"} 
[2026-09-11 09:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 09:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 09:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 09:30:14","page":1} 
[2026-09-11 09:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 08:45:12","window_to":"2026-09-11 09:45:12"} 
[2026-09-11 09:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 09:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 10:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 09:45:12","page":1} 
[2026-09-11 10:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 09:00:13","window_to":"2026-09-11 10:00:14"} 
[2026-09-11 10:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 10:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 10:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-11 09:00:25","window_to":"2026-09-11 10:00:25"} 
[2026-09-11 10:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 09:15:12","window_to":"2026-09-11 10:15:12"} 
[2026-09-11 10:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 10:00:14","page":1} 
[2026-09-11 10:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 10:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 10:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 10:15:13","page":1} 
[2026-09-11 10:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 09:30:14","window_to":"2026-09-11 10:30:14"} 
[2026-09-11 10:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 10:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 10:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 10:30:14","page":1} 
[2026-09-11 10:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 09:45:14","window_to":"2026-09-11 10:45:14"} 
[2026-09-11 10:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 10:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 11:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 10:00:15","window_to":"2026-09-11 11:00:15"} 
[2026-09-11 11:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 10:45:14","page":1} 
[2026-09-11 11:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 11:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 11:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-11 10:00:27","window_to":"2026-09-11 11:00:27"} 
[2026-09-11 11:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 10:15:12","window_to":"2026-09-11 11:15:12"} 
[2026-09-11 11:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 11:00:15","page":1} 
[2026-09-11 11:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 11:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 11:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 10:30:14","window_to":"2026-09-11 11:30:14"} 
[2026-09-11 11:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 11:15:13","page":1} 
[2026-09-11 11:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 11:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 11:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 11:30:14","page":1} 
[2026-09-11 11:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 10:45:13","window_to":"2026-09-11 11:45:13"} 
[2026-09-11 11:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 11:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 12:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 11:45:14","page":1} 
[2026-09-11 12:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 11:00:16","window_to":"2026-09-11 12:00:16"} 
[2026-09-11 12:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 12:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 12:00:30] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-11 11:00:30","window_to":"2026-09-11 12:00:30"} 
[2026-09-11 12:00:36] local.INFO: Automated database backup created successfully: backup_2026_09_11_12_00_30.sql  
[2026-09-11 12:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 12:00:16","page":1} 
[2026-09-11 12:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 11:15:14","window_to":"2026-09-11 12:15:14"} 
[2026-09-11 12:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 12:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 12:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 12:15:14","page":1} 
[2026-09-11 12:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 11:30:15","window_to":"2026-09-11 12:30:15"} 
[2026-09-11 12:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 12:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 12:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 12:30:15","page":1} 
[2026-09-11 12:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 11:45:12","window_to":"2026-09-11 12:45:12"} 
[2026-09-11 12:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 12:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 13:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 12:00:15","window_to":"2026-09-11 13:00:15"} 
[2026-09-11 13:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 12:45:12","page":1} 
[2026-09-11 13:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 13:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 13:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-11 12:00:26","window_to":"2026-09-11 13:00:26"} 
[2026-09-11 13:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 12:15:13","window_to":"2026-09-11 13:15:13"} 
[2026-09-11 13:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 13:00:16","page":1} 
[2026-09-11 13:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 13:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 13:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 12:30:15","window_to":"2026-09-11 13:30:15"} 
[2026-09-11 13:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 13:15:14","page":1} 
[2026-09-11 13:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 13:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 13:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 13:30:16","page":1} 
[2026-09-11 13:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 12:45:14","window_to":"2026-09-11 13:45:14"} 
[2026-09-11 13:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 13:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 14:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 13:00:15","window_to":"2026-09-11 14:00:15"} 
[2026-09-11 14:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 13:45:13","page":1} 
[2026-09-11 14:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 14:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 14:00:28] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-11 13:00:27","window_to":"2026-09-11 14:00:27"} 
[2026-09-11 14:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 13:15:13","window_to":"2026-09-11 14:15:13"} 
[2026-09-11 14:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 14:00:16","page":1} 
[2026-09-11 14:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 14:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 14:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 14:15:14","page":1} 
[2026-09-11 14:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 13:30:14","window_to":"2026-09-11 14:30:14"} 
[2026-09-11 14:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 14:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 14:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 14:30:13","page":1} 
[2026-09-11 14:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 13:45:13","window_to":"2026-09-11 14:45:13"} 
[2026-09-11 14:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 14:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 15:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 14:45:13","page":1} 
[2026-09-11 15:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 14:00:15","window_to":"2026-09-11 15:00:15"} 
[2026-09-11 15:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 15:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 15:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-11 14:00:26","window_to":"2026-09-11 15:00:26"} 
[2026-09-11 15:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 14:15:12","window_to":"2026-09-11 15:15:13"} 
[2026-09-11 15:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 15:00:15","page":1} 
[2026-09-11 15:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 15:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 15:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 15:15:13","page":1} 
[2026-09-11 15:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 14:30:15","window_to":"2026-09-11 15:30:15"} 
[2026-09-11 15:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 15:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 15:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 15:30:15","page":1} 
[2026-09-11 15:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 14:45:13","window_to":"2026-09-11 15:45:13"} 
[2026-09-11 15:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 15:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 16:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 15:00:12","window_to":"2026-09-11 16:00:12"} 
[2026-09-11 16:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 15:45:13","page":1} 
[2026-09-11 16:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 16:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 16:00:23] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-11 15:00:23","window_to":"2026-09-11 16:00:23"} 
[2026-09-11 16:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 16:00:13","page":1} 
[2026-09-11 16:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 15:15:12","window_to":"2026-09-11 16:15:12"} 
[2026-09-11 16:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 16:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 16:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 16:15:12","page":1} 
[2026-09-11 16:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 15:30:14","window_to":"2026-09-11 16:30:14"} 
[2026-09-11 16:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 16:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 16:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 15:45:13","window_to":"2026-09-11 16:45:14"} 
[2026-09-11 16:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 16:30:14","page":1} 
[2026-09-11 16:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 16:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 17:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 16:00:14","window_to":"2026-09-11 17:00:14"} 
[2026-09-11 17:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 16:45:15","page":1} 
[2026-09-11 17:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 17:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 17:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-11 16:00:26","window_to":"2026-09-11 17:00:26"} 
[2026-09-11 17:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 16:15:13","window_to":"2026-09-11 17:15:13"} 
[2026-09-11 17:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 17:00:16","page":1} 
[2026-09-11 17:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 17:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 17:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 16:30:15","window_to":"2026-09-11 17:30:15"} 
[2026-09-11 17:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 17:15:13","page":1} 
[2026-09-11 17:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 17:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 17:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 16:45:14","window_to":"2026-09-11 17:45:15"} 
[2026-09-11 17:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 17:30:16","page":1} 
[2026-09-11 17:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 17:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 18:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 17:00:14","window_to":"2026-09-11 18:00:14"} 
[2026-09-11 18:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 17:45:15","page":1} 
[2026-09-11 18:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 18:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 18:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-11 17:00:26","window_to":"2026-09-11 18:00:26"} 
[2026-09-11 18:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 17:15:12","window_to":"2026-09-11 18:15:12"} 
[2026-09-11 18:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 18:00:16","page":1} 
[2026-09-11 18:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 18:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 18:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 17:30:14","window_to":"2026-09-11 18:30:14"} 
[2026-09-11 18:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 18:15:13","page":1} 
[2026-09-11 18:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 18:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 18:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 18:30:14","page":1} 
[2026-09-11 18:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 17:45:14","window_to":"2026-09-11 18:45:14"} 
[2026-09-11 18:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 18:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 19:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 18:45:14","page":1} 
[2026-09-11 19:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 18:00:13","window_to":"2026-09-11 19:00:14"} 
[2026-09-11 19:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 19:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 19:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-11 18:00:24","window_to":"2026-09-11 19:00:24"} 
[2026-09-11 19:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 19:00:14","page":1} 
[2026-09-11 19:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 18:15:12","window_to":"2026-09-11 19:15:12"} 
[2026-09-11 19:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 19:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 19:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 18:30:14","window_to":"2026-09-11 19:30:14"} 
[2026-09-11 19:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 19:15:11","page":1} 
[2026-09-11 19:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 19:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 19:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 18:45:13","window_to":"2026-09-11 19:45:13"} 
[2026-09-11 19:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 19:30:15","page":1} 
[2026-09-11 19:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 19:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 20:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 19:00:14","window_to":"2026-09-11 20:00:14"} 
[2026-09-11 20:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 19:45:14","page":1} 
[2026-09-11 20:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 20:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 20:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-11 19:00:24","window_to":"2026-09-11 20:00:24"} 
[2026-09-11 20:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 19:15:12","window_to":"2026-09-11 20:15:12"} 
[2026-09-11 20:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 20:00:15","page":1} 
[2026-09-11 20:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 20:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 20:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 19:30:13","window_to":"2026-09-11 20:30:13"} 
[2026-09-11 20:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 20:15:13","page":1} 
[2026-09-11 20:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 20:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 20:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 19:45:13","window_to":"2026-09-11 20:45:13"} 
[2026-09-11 20:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 20:30:14","page":1} 
[2026-09-11 20:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 20:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 21:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 20:45:14","page":1} 
[2026-09-11 21:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 20:00:15","window_to":"2026-09-11 21:00:15"} 
[2026-09-11 21:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 21:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 21:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-11 20:00:26","window_to":"2026-09-11 21:00:26"} 
[2026-09-11 21:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 20:15:13","window_to":"2026-09-11 21:15:13"} 
[2026-09-11 21:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 21:00:15","page":1} 
[2026-09-11 21:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 21:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 21:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 20:30:14","window_to":"2026-09-11 21:30:14"} 
[2026-09-11 21:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 21:15:13","page":1} 
[2026-09-11 21:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 21:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 21:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 21:30:15","page":1} 
[2026-09-11 21:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 20:45:13","window_to":"2026-09-11 21:45:13"} 
[2026-09-11 21:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 21:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 22:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 21:45:13","page":1} 
[2026-09-11 22:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 21:00:15","window_to":"2026-09-11 22:00:15"} 
[2026-09-11 22:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 22:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 22:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-11 21:00:26","window_to":"2026-09-11 22:00:26"} 
[2026-09-11 22:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 21:15:12","window_to":"2026-09-11 22:15:12"} 
[2026-09-11 22:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 22:00:15","page":1} 
[2026-09-11 22:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 22:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 22:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 22:15:13","page":1} 
[2026-09-11 22:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 21:30:15","window_to":"2026-09-11 22:30:15"} 
[2026-09-11 22:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 22:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 22:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 22:30:15","page":1} 
[2026-09-11 22:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 21:45:13","window_to":"2026-09-11 22:45:13"} 
[2026-09-11 22:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 22:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 23:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 22:45:13","page":1} 
[2026-09-11 23:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 22:00:14","window_to":"2026-09-11 23:00:15"} 
[2026-09-11 23:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 23:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 23:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-11 22:00:26","window_to":"2026-09-11 23:00:26"} 
[2026-09-11 23:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 22:15:13","window_to":"2026-09-11 23:15:13"} 
[2026-09-11 23:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 23:00:14","page":1} 
[2026-09-11 23:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 23:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 23:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 23:15:13","page":1} 
[2026-09-11 23:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 22:30:14","window_to":"2026-09-11 23:30:14"} 
[2026-09-11 23:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 23:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-11 23:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 23:30:14","page":1} 
[2026-09-11 23:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 22:45:13","window_to":"2026-09-11 23:45:13"} 
[2026-09-11 23:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-11 23:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 00:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 23:00:14","window_to":"2026-09-12 00:00:14"} 
[2026-09-12 00:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-11 23:45:12","page":1} 
[2026-09-12 00:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 00:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 00:00:28] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-11 23:00:28","window_to":"2026-09-12 00:00:28"} 
[2026-09-12 00:00:29] local.INFO: Student payment status check queued {"batches":1,"students":1} 
[2026-09-12 00:00:32] local.INFO: Student payment status cron evaluated {"student_id":5,"admission_no":"26/000001","outstanding_amount":24000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-12 00:00:35] local.INFO: Automated database backup created successfully: backup_2026_09_12_00_00_28.sql  
[2026-09-12 00:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 23:15:12","window_to":"2026-09-12 00:15:12"} 
[2026-09-12 00:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 00:00:15","page":1} 
[2026-09-12 00:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 00:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 00:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 00:15:13","page":1} 
[2026-09-12 00:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 23:30:14","window_to":"2026-09-12 00:30:14"} 
[2026-09-12 00:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 00:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 00:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 00:30:14","page":1} 
[2026-09-12 00:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-11 23:45:14","window_to":"2026-09-12 00:45:14"} 
[2026-09-12 00:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 00:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 01:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 00:00:15","window_to":"2026-09-12 01:00:15"} 
[2026-09-12 01:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 00:45:13","page":1} 
[2026-09-12 01:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 01:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 01:00:30] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-12 00:00:30","window_to":"2026-09-12 01:00:30"} 
[2026-09-12 01:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 00:15:12","window_to":"2026-09-12 01:15:12"} 
[2026-09-12 01:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 01:00:16","page":1} 
[2026-09-12 01:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 01:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 01:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 00:30:14","window_to":"2026-09-12 01:30:14"} 
[2026-09-12 01:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 01:15:12","page":1} 
[2026-09-12 01:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 01:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 01:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 01:30:14","page":1} 
[2026-09-12 01:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 00:45:13","window_to":"2026-09-12 01:45:13"} 
[2026-09-12 01:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 01:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 02:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 01:45:13","page":1} 
[2026-09-12 02:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 01:00:15","window_to":"2026-09-12 02:00:15"} 
[2026-09-12 02:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 02:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 02:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-12 01:00:26","window_to":"2026-09-12 02:00:26"} 
[2026-09-12 02:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 01:15:12","window_to":"2026-09-12 02:15:12"} 
[2026-09-12 02:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 02:00:15","page":1} 
[2026-09-12 02:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 02:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 02:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 01:30:14","window_to":"2026-09-12 02:30:14"} 
[2026-09-12 02:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 02:15:13","page":1} 
[2026-09-12 02:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 02:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 02:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 02:30:14","page":1} 
[2026-09-12 02:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 01:45:13","window_to":"2026-09-12 02:45:13"} 
[2026-09-12 02:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 02:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 03:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 02:45:13","page":1} 
[2026-09-12 03:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 02:00:14","window_to":"2026-09-12 03:00:14"} 
[2026-09-12 03:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 03:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 03:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-12 02:00:25","window_to":"2026-09-12 03:00:25"} 
[2026-09-12 03:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 02:15:11","window_to":"2026-09-12 03:15:11"} 
[2026-09-12 03:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 03:00:14","page":1} 
[2026-09-12 03:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 03:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 03:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 03:15:11","page":1} 
[2026-09-12 03:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 02:30:14","window_to":"2026-09-12 03:30:14"} 
[2026-09-12 03:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 03:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 03:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 03:30:14","page":1} 
[2026-09-12 03:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 02:45:12","window_to":"2026-09-12 03:45:12"} 
[2026-09-12 03:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 03:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 04:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 03:00:14","window_to":"2026-09-12 04:00:14"} 
[2026-09-12 04:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 03:45:12","page":1} 
[2026-09-12 04:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 04:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 04:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-12 03:00:25","window_to":"2026-09-12 04:00:25"} 
[2026-09-12 04:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 04:00:14","page":1} 
[2026-09-12 04:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 03:15:13","window_to":"2026-09-12 04:15:13"} 
[2026-09-12 04:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 04:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 04:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 04:15:12","page":1} 
[2026-09-12 04:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 03:30:13","window_to":"2026-09-12 04:30:13"} 
[2026-09-12 04:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 04:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 04:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 04:30:13","page":1} 
[2026-09-12 04:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 03:45:11","window_to":"2026-09-12 04:45:11"} 
[2026-09-12 04:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 04:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 05:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 04:45:11","page":1} 
[2026-09-12 05:00:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 04:00:12","window_to":"2026-09-12 05:00:12"} 
[2026-09-12 05:00:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 05:00:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 05:00:22] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-12 04:00:22","window_to":"2026-09-12 05:00:22"} 
[2026-09-12 05:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 04:15:11","window_to":"2026-09-12 05:15:11"} 
[2026-09-12 05:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 05:00:12","page":1} 
[2026-09-12 05:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 05:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 05:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 04:30:15","window_to":"2026-09-12 05:30:15"} 
[2026-09-12 05:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 05:15:12","page":1} 
[2026-09-12 05:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 05:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 05:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 05:30:16","page":1} 
[2026-09-12 05:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 04:45:11","window_to":"2026-09-12 05:45:11"} 
[2026-09-12 05:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 05:45:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 06:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 05:00:13","window_to":"2026-09-12 06:00:13"} 
[2026-09-12 06:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 05:45:11","page":1} 
[2026-09-12 06:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 06:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 06:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-12 05:00:24","window_to":"2026-09-12 06:00:24"} 
[2026-09-12 06:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 05:15:11","window_to":"2026-09-12 06:15:12"} 
[2026-09-12 06:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 06:00:15","page":1} 
[2026-09-12 06:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 06:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 06:30:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 06:15:12","page":1} 
[2026-09-12 06:30:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 05:30:12","window_to":"2026-09-12 06:30:12"} 
[2026-09-12 06:30:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 06:30:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 06:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 06:30:12","page":1} 
[2026-09-12 06:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 05:45:12","window_to":"2026-09-12 06:45:12"} 
[2026-09-12 06:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 06:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 07:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 06:00:15","window_to":"2026-09-12 07:00:15"} 
[2026-09-12 07:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 06:45:11","page":1} 
[2026-09-12 07:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 07:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 07:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-12 06:00:26","window_to":"2026-09-12 07:00:26"} 
[2026-09-12 07:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 07:00:16","page":1} 
[2026-09-12 07:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 06:15:11","window_to":"2026-09-12 07:15:11"} 
[2026-09-12 07:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 07:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 07:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 06:30:14","window_to":"2026-09-12 07:30:15"} 
[2026-09-12 07:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 07:15:11","page":1} 
[2026-09-12 07:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 07:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 07:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 07:30:15","page":1} 
[2026-09-12 07:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 06:45:12","window_to":"2026-09-12 07:45:12"} 
[2026-09-12 07:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 07:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 08:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 07:45:12","page":1} 
[2026-09-12 08:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 07:00:14","window_to":"2026-09-12 08:00:14"} 
[2026-09-12 08:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 08:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 08:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-12 07:00:26","window_to":"2026-09-12 08:00:26"} 
[2026-09-12 08:00:27] local.INFO: Payment reminders queued {"batches":1,"students":1} 
[2026-09-12 08:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 07:15:11","window_to":"2026-09-12 08:15:11"} 
[2026-09-12 08:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 08:00:14","page":1} 
[2026-09-12 08:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 08:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 08:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 07:30:13","window_to":"2026-09-12 08:30:13"} 
[2026-09-12 08:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 08:15:12","page":1} 
[2026-09-12 08:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 08:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 08:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 08:30:14","page":1} 
[2026-09-12 08:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 07:45:12","window_to":"2026-09-12 08:45:12"} 
[2026-09-12 08:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 08:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 09:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 08:00:14","window_to":"2026-09-12 09:00:14"} 
[2026-09-12 09:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 08:45:12","page":1} 
[2026-09-12 09:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 09:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 09:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-12 08:00:26","window_to":"2026-09-12 09:00:26"} 
[2026-09-12 09:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 09:00:15","page":1} 
[2026-09-12 09:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 08:15:12","window_to":"2026-09-12 09:15:12"} 
[2026-09-12 09:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 09:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 09:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 09:15:12","page":1} 
[2026-09-12 09:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 08:30:14","window_to":"2026-09-12 09:30:14"} 
[2026-09-12 09:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 09:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 09:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 09:30:14","page":1} 
[2026-09-12 09:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 08:45:13","window_to":"2026-09-12 09:45:13"} 
[2026-09-12 09:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 09:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 10:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 09:00:15","window_to":"2026-09-12 10:00:15"} 
[2026-09-12 10:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 09:45:13","page":1} 
[2026-09-12 10:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 10:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 10:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-12 09:00:26","window_to":"2026-09-12 10:00:26"} 
[2026-09-12 10:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 10:00:15","page":1} 
[2026-09-12 10:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 09:15:12","window_to":"2026-09-12 10:15:13"} 
[2026-09-12 10:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 10:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 10:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 09:30:13","window_to":"2026-09-12 10:30:13"} 
[2026-09-12 10:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 10:15:13","page":1} 
[2026-09-12 10:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 10:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 10:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 09:45:13","window_to":"2026-09-12 10:45:13"} 
[2026-09-12 10:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 10:30:14","page":1} 
[2026-09-12 10:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 10:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 11:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 10:45:14","page":1} 
[2026-09-12 11:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 10:00:13","window_to":"2026-09-12 11:00:13"} 
[2026-09-12 11:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 11:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 11:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-12 10:00:25","window_to":"2026-09-12 11:00:25"} 
[2026-09-12 11:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 10:15:12","window_to":"2026-09-12 11:15:12"} 
[2026-09-12 11:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 11:00:13","page":1} 
[2026-09-12 11:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 11:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 11:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 10:30:15","window_to":"2026-09-12 11:30:15"} 
[2026-09-12 11:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 11:15:13","page":1} 
[2026-09-12 11:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 11:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 11:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 10:45:13","window_to":"2026-09-12 11:45:14"} 
[2026-09-12 11:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 11:30:15","page":1} 
[2026-09-12 11:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 11:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 12:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 11:00:15","window_to":"2026-09-12 12:00:15"} 
[2026-09-12 12:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 11:45:14","page":1} 
[2026-09-12 12:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 12:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 12:00:29] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-12 11:00:29","window_to":"2026-09-12 12:00:29"} 
[2026-09-12 12:00:34] local.INFO: Automated database backup created successfully: backup_2026_09_12_12_00_29.sql  
[2026-09-12 12:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 11:15:14","window_to":"2026-09-12 12:15:14"} 
[2026-09-12 12:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 12:00:16","page":1} 
[2026-09-12 12:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 12:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 12:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 12:15:14","page":1} 
[2026-09-12 12:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 11:30:15","window_to":"2026-09-12 12:30:16"} 
[2026-09-12 12:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 12:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 12:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 11:45:14","window_to":"2026-09-12 12:45:14"} 
[2026-09-12 12:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 12:30:15","page":1} 
[2026-09-12 12:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 12:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 13:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 12:00:13","window_to":"2026-09-12 13:00:13"} 
[2026-09-12 13:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 12:45:15","page":1} 
[2026-09-12 13:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 13:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 13:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-12 12:00:25","window_to":"2026-09-12 13:00:25"} 
[2026-09-12 13:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 13:00:15","page":1} 
[2026-09-12 13:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 12:15:13","window_to":"2026-09-12 13:15:13"} 
[2026-09-12 13:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 13:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 13:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 13:15:13","page":1} 
[2026-09-12 13:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 12:30:13","window_to":"2026-09-12 13:30:13"} 
[2026-09-12 13:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 13:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 13:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 13:30:13","page":1} 
[2026-09-12 13:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 12:45:12","window_to":"2026-09-12 13:45:12"} 
[2026-09-12 13:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 13:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 14:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 13:45:12","page":1} 
[2026-09-12 14:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 13:00:15","window_to":"2026-09-12 14:00:15"} 
[2026-09-12 14:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 14:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 14:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-12 13:00:25","window_to":"2026-09-12 14:00:26"} 
[2026-09-12 14:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 13:15:12","window_to":"2026-09-12 14:15:12"} 
[2026-09-12 14:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 14:00:15","page":1} 
[2026-09-12 14:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 14:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 14:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 14:15:13","page":1} 
[2026-09-12 14:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 13:30:15","window_to":"2026-09-12 14:30:15"} 
[2026-09-12 14:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 14:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 14:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 13:45:13","window_to":"2026-09-12 14:45:13"} 
[2026-09-12 14:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 14:30:15","page":1} 
[2026-09-12 14:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 14:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 15:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 14:45:13","page":1} 
[2026-09-12 15:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 14:00:15","window_to":"2026-09-12 15:00:15"} 
[2026-09-12 15:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 15:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 15:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-12 14:00:26","window_to":"2026-09-12 15:00:26"} 
[2026-09-12 15:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 15:00:15","page":1} 
[2026-09-12 15:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 14:15:12","window_to":"2026-09-12 15:15:12"} 
[2026-09-12 15:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 15:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 15:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 15:15:12","page":1} 
[2026-09-12 15:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 14:30:14","window_to":"2026-09-12 15:30:14"} 
[2026-09-12 15:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 15:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 15:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 15:30:13","page":1} 
[2026-09-12 15:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 14:45:13","window_to":"2026-09-12 15:45:13"} 
[2026-09-12 15:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 15:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 16:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 15:00:13","window_to":"2026-09-12 16:00:13"} 
[2026-09-12 16:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 15:45:13","page":1} 
[2026-09-12 16:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 16:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 16:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-12 15:00:24","window_to":"2026-09-12 16:00:24"} 
[2026-09-12 16:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 15:15:12","window_to":"2026-09-12 16:15:12"} 
[2026-09-12 16:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 16:00:13","page":1} 
[2026-09-12 16:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 16:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 16:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 16:15:12","page":1} 
[2026-09-12 16:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 15:30:14","window_to":"2026-09-12 16:30:14"} 
[2026-09-12 16:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 16:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 16:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 15:45:12","window_to":"2026-09-12 16:45:13"} 
[2026-09-12 16:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 16:30:14","page":1} 
[2026-09-12 16:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 16:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 17:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 16:45:13","page":1} 
[2026-09-12 17:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 16:00:14","window_to":"2026-09-12 17:00:14"} 
[2026-09-12 17:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 17:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 17:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-12 16:00:24","window_to":"2026-09-12 17:00:25"} 
[2026-09-12 17:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 17:00:14","page":1} 
[2026-09-12 17:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 16:15:12","window_to":"2026-09-12 17:15:12"} 
[2026-09-12 17:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 17:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 17:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 17:15:12","page":1} 
[2026-09-12 17:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 16:30:15","window_to":"2026-09-12 17:30:15"} 
[2026-09-12 17:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 17:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 17:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 16:45:13","window_to":"2026-09-12 17:45:13"} 
[2026-09-12 17:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 17:30:15","page":1} 
[2026-09-12 17:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 17:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 18:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 17:00:14","window_to":"2026-09-12 18:00:14"} 
[2026-09-12 18:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 17:45:13","page":1} 
[2026-09-12 18:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 18:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 18:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-12 17:00:26","window_to":"2026-09-12 18:00:26"} 
[2026-09-12 18:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 17:15:12","window_to":"2026-09-12 18:15:12"} 
[2026-09-12 18:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 18:00:14","page":1} 
[2026-09-12 18:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 18:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 18:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 17:30:14","window_to":"2026-09-12 18:30:14"} 
[2026-09-12 18:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 18:15:12","page":1} 
[2026-09-12 18:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 18:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 18:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 18:30:15","page":1} 
[2026-09-12 18:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 17:45:12","window_to":"2026-09-12 18:45:12"} 
[2026-09-12 18:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 18:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 19:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 18:45:11","page":1} 
[2026-09-12 19:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 18:00:14","window_to":"2026-09-12 19:00:15"} 
[2026-09-12 19:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 19:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 19:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-12 18:00:26","window_to":"2026-09-12 19:00:26"} 
[2026-09-12 19:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 19:00:15","page":1} 
[2026-09-12 19:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 18:15:13","window_to":"2026-09-12 19:15:13"} 
[2026-09-12 19:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 19:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 19:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 19:15:12","page":1} 
[2026-09-12 19:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 18:30:15","window_to":"2026-09-12 19:30:15"} 
[2026-09-12 19:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 19:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 19:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 18:45:12","window_to":"2026-09-12 19:45:12"} 
[2026-09-12 19:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 19:30:15","page":1} 
[2026-09-12 19:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 19:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 20:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 19:45:13","page":1} 
[2026-09-12 20:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 19:00:14","window_to":"2026-09-12 20:00:14"} 
[2026-09-12 20:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 20:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 20:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-12 19:00:26","window_to":"2026-09-12 20:00:26"} 
[2026-09-12 20:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 20:00:14","page":1} 
[2026-09-12 20:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 19:15:12","window_to":"2026-09-12 20:15:12"} 
[2026-09-12 20:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 20:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 20:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 20:15:12","page":1} 
[2026-09-12 20:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 19:30:15","window_to":"2026-09-12 20:30:15"} 
[2026-09-12 20:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 20:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 20:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 19:45:13","window_to":"2026-09-12 20:45:13"} 
[2026-09-12 20:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 20:30:15","page":1} 
[2026-09-12 20:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 20:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 21:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 20:45:13","page":1} 
[2026-09-12 21:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 20:00:14","window_to":"2026-09-12 21:00:14"} 
[2026-09-12 21:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 21:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 21:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-12 20:00:26","window_to":"2026-09-12 21:00:26"} 
[2026-09-12 21:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 21:00:14","page":1} 
[2026-09-12 21:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 20:15:12","window_to":"2026-09-12 21:15:12"} 
[2026-09-12 21:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 21:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 21:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 20:30:14","window_to":"2026-09-12 21:30:14"} 
[2026-09-12 21:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 21:15:12","page":1} 
[2026-09-12 21:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 21:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 21:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 21:30:14","page":1} 
[2026-09-12 21:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 20:45:12","window_to":"2026-09-12 21:45:12"} 
[2026-09-12 21:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 21:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 22:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 21:45:12","page":1} 
[2026-09-12 22:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 21:00:14","window_to":"2026-09-12 22:00:14"} 
[2026-09-12 22:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 22:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 22:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-12 21:00:24","window_to":"2026-09-12 22:00:24"} 
[2026-09-12 22:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 21:15:10","window_to":"2026-09-12 22:15:11"} 
[2026-09-12 22:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 22:00:14","page":1} 
[2026-09-12 22:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 22:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 22:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 21:30:15","window_to":"2026-09-12 22:30:15"} 
[2026-09-12 22:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 22:15:11","page":1} 
[2026-09-12 22:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 22:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 22:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 21:45:13","window_to":"2026-09-12 22:45:13"} 
[2026-09-12 22:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 22:30:16","page":1} 
[2026-09-12 22:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 22:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 23:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 22:45:13","page":1} 
[2026-09-12 23:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 22:00:14","window_to":"2026-09-12 23:00:14"} 
[2026-09-12 23:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 23:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 23:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-12 22:00:25","window_to":"2026-09-12 23:00:25"} 
[2026-09-12 23:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 22:15:12","window_to":"2026-09-12 23:15:12"} 
[2026-09-12 23:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 23:00:14","page":1} 
[2026-09-12 23:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 23:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 23:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 22:30:15","window_to":"2026-09-12 23:30:15"} 
[2026-09-12 23:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 23:15:12","page":1} 
[2026-09-12 23:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 23:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-12 23:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 23:30:15","page":1} 
[2026-09-12 23:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 22:45:12","window_to":"2026-09-12 23:45:12"} 
[2026-09-12 23:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-12 23:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 00:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 23:00:15","window_to":"2026-09-13 00:00:15"} 
[2026-09-13 00:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-12 23:45:12","page":1} 
[2026-09-13 00:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 00:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 00:00:29] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-12 23:00:29","window_to":"2026-09-13 00:00:29"} 
[2026-09-13 00:00:29] local.INFO: Student payment status check queued {"batches":1,"students":1} 
[2026-09-13 00:00:33] local.INFO: Student payment status cron evaluated {"student_id":5,"admission_no":"26/000001","outstanding_amount":24000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-13 00:00:35] local.INFO: Automated database backup created successfully: backup_2026_09_13_00_00_29.sql  
[2026-09-13 00:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 23:15:13","window_to":"2026-09-13 00:15:13"} 
[2026-09-13 00:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 00:00:17","page":1} 
[2026-09-13 00:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 00:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 00:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 00:15:14","page":1} 
[2026-09-13 00:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 23:30:15","window_to":"2026-09-13 00:30:15"} 
[2026-09-13 00:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 00:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 00:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-12 23:45:12","window_to":"2026-09-13 00:45:12"} 
[2026-09-13 00:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 00:30:15","page":1} 
[2026-09-13 00:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 00:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 01:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 00:45:12","page":1} 
[2026-09-13 01:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 00:00:15","window_to":"2026-09-13 01:00:15"} 
[2026-09-13 01:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 01:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 01:00:29] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-13 00:00:29","window_to":"2026-09-13 01:00:29"} 
[2026-09-13 01:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 01:00:15","page":1} 
[2026-09-13 01:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 00:15:12","window_to":"2026-09-13 01:15:13"} 
[2026-09-13 01:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 01:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 01:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 01:15:12","page":1} 
[2026-09-13 01:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 00:30:13","window_to":"2026-09-13 01:30:13"} 
[2026-09-13 01:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 01:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 01:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 01:30:13","page":1} 
[2026-09-13 01:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 00:45:12","window_to":"2026-09-13 01:45:12"} 
[2026-09-13 01:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 01:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 02:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 01:45:12","page":1} 
[2026-09-13 02:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 01:00:13","window_to":"2026-09-13 02:00:13"} 
[2026-09-13 02:00:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 02:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 02:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-13 01:00:26","window_to":"2026-09-13 02:00:26"} 
[2026-09-13 02:00:27] local.INFO: JWT secrets rotated and runtime reloaded {"at":"2026-09-13 02:00:27"} 
[2026-09-13 02:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 01:15:11","window_to":"2026-09-13 02:15:11"} 
[2026-09-13 02:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 02:00:13","page":1} 
[2026-09-13 02:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 02:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 02:30:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 01:30:12","window_to":"2026-09-13 02:30:12"} 
[2026-09-13 02:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 02:15:11","page":1} 
[2026-09-13 02:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 02:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 02:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 02:30:13","page":1} 
[2026-09-13 02:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 01:45:11","window_to":"2026-09-13 02:45:11"} 
[2026-09-13 02:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 02:45:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 03:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 02:00:13","window_to":"2026-09-13 03:00:13"} 
[2026-09-13 03:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 02:45:11","page":1} 
[2026-09-13 03:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 03:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 03:00:23] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-13 02:00:22","window_to":"2026-09-13 03:00:22"} 
[2026-09-13 03:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 03:00:14","page":1} 
[2026-09-13 03:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 02:15:11","window_to":"2026-09-13 03:15:11"} 
[2026-09-13 03:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 03:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 03:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 03:15:11","page":1} 
[2026-09-13 03:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 02:30:13","window_to":"2026-09-13 03:30:13"} 
[2026-09-13 03:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 03:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 03:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 03:30:13","page":1} 
[2026-09-13 03:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 02:45:11","window_to":"2026-09-13 03:45:11"} 
[2026-09-13 03:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 03:45:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 04:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 03:45:11","page":1} 
[2026-09-13 04:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 03:00:12","window_to":"2026-09-13 04:00:12"} 
[2026-09-13 04:00:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 04:00:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 04:00:23] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-13 03:00:22","window_to":"2026-09-13 04:00:22"} 
[2026-09-13 04:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 04:00:12","page":1} 
[2026-09-13 04:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 03:15:11","window_to":"2026-09-13 04:15:11"} 
[2026-09-13 04:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 04:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 04:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 04:15:11","page":1} 
[2026-09-13 04:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 03:30:13","window_to":"2026-09-13 04:30:13"} 
[2026-09-13 04:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 04:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 04:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 04:30:13","page":1} 
[2026-09-13 04:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 03:45:12","window_to":"2026-09-13 04:45:12"} 
[2026-09-13 04:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 04:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 05:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 04:45:12","page":1} 
[2026-09-13 05:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 04:00:12","window_to":"2026-09-13 05:00:12"} 
[2026-09-13 05:00:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 05:00:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 05:00:23] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-13 04:00:22","window_to":"2026-09-13 05:00:22"} 
[2026-09-13 05:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 05:00:13","page":1} 
[2026-09-13 05:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 04:15:11","window_to":"2026-09-13 05:15:11"} 
[2026-09-13 05:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 05:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 05:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 05:15:11","page":1} 
[2026-09-13 05:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 04:30:15","window_to":"2026-09-13 05:30:15"} 
[2026-09-13 05:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 05:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 05:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 05:30:15","page":1} 
[2026-09-13 05:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 04:45:12","window_to":"2026-09-13 05:45:12"} 
[2026-09-13 05:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 05:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 06:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 05:00:13","window_to":"2026-09-13 06:00:13"} 
[2026-09-13 06:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 05:45:12","page":1} 
[2026-09-13 06:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 06:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 06:00:23] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-13 05:00:23","window_to":"2026-09-13 06:00:23"} 
[2026-09-13 06:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 06:00:13","page":1} 
[2026-09-13 06:15:10] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 05:15:10","window_to":"2026-09-13 06:15:10"} 
[2026-09-13 06:15:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 06:15:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 06:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 06:15:10","page":1} 
[2026-09-13 06:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 05:30:13","window_to":"2026-09-13 06:30:13"} 
[2026-09-13 06:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 06:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 06:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 06:30:14","page":1} 
[2026-09-13 06:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 05:45:11","window_to":"2026-09-13 06:45:11"} 
[2026-09-13 06:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 06:45:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 07:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 06:45:11","page":1} 
[2026-09-13 07:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 06:00:14","window_to":"2026-09-13 07:00:14"} 
[2026-09-13 07:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 07:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 07:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-13 06:00:24","window_to":"2026-09-13 07:00:24"} 
[2026-09-13 07:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 07:00:14","page":1} 
[2026-09-13 07:15:10] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 06:15:10","window_to":"2026-09-13 07:15:10"} 
[2026-09-13 07:15:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 07:15:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 07:30:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 06:30:11","window_to":"2026-09-13 07:30:11"} 
[2026-09-13 07:30:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 07:15:10","page":1} 
[2026-09-13 07:30:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 07:30:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 07:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 06:45:12","window_to":"2026-09-13 07:45:12"} 
[2026-09-13 07:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 07:30:11","page":1} 
[2026-09-13 07:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 07:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 08:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 07:45:12","page":1} 
[2026-09-13 08:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 07:00:12","window_to":"2026-09-13 08:00:13"} 
[2026-09-13 08:00:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 08:00:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 08:00:23] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-13 07:00:23","window_to":"2026-09-13 08:00:23"} 
[2026-09-13 08:00:24] local.INFO: Payment reminders queued {"batches":1,"students":1} 
[2026-09-13 08:15:10] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 07:15:10","window_to":"2026-09-13 08:15:10"} 
[2026-09-13 08:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 08:00:13","page":1} 
[2026-09-13 08:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 08:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 08:30:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 07:30:12","window_to":"2026-09-13 08:30:12"} 
[2026-09-13 08:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 08:15:11","page":1} 
[2026-09-13 08:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 08:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 08:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 07:45:11","window_to":"2026-09-13 08:45:11"} 
[2026-09-13 08:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 08:30:13","page":1} 
[2026-09-13 08:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 08:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 09:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 08:45:12","page":1} 
[2026-09-13 09:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 08:00:14","window_to":"2026-09-13 09:00:14"} 
[2026-09-13 09:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 09:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 09:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-13 08:00:24","window_to":"2026-09-13 09:00:24"} 
[2026-09-13 09:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 08:15:11","window_to":"2026-09-13 09:15:11"} 
[2026-09-13 09:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 09:00:14","page":1} 
[2026-09-13 09:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 09:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 09:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 08:30:14","window_to":"2026-09-13 09:30:14"} 
[2026-09-13 09:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 09:15:12","page":1} 
[2026-09-13 09:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 09:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 09:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 09:30:14","page":1} 
[2026-09-13 09:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 08:45:13","window_to":"2026-09-13 09:45:13"} 
[2026-09-13 09:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 09:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 10:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 09:00:13","window_to":"2026-09-13 10:00:14"} 
[2026-09-13 10:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 09:45:12","page":1} 
[2026-09-13 10:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 10:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 10:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-13 09:00:24","window_to":"2026-09-13 10:00:24"} 
[2026-09-13 10:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 10:00:14","page":1} 
[2026-09-13 10:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 09:15:13","window_to":"2026-09-13 10:15:13"} 
[2026-09-13 10:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 10:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 10:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 10:15:13","page":1} 
[2026-09-13 10:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 09:30:14","window_to":"2026-09-13 10:30:14"} 
[2026-09-13 10:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 10:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 10:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 09:45:12","window_to":"2026-09-13 10:45:12"} 
[2026-09-13 10:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 10:30:14","page":1} 
[2026-09-13 10:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 10:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 11:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 10:45:12","page":1} 
[2026-09-13 11:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 10:00:13","window_to":"2026-09-13 11:00:14"} 
[2026-09-13 11:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 11:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 11:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-13 10:00:25","window_to":"2026-09-13 11:00:25"} 
[2026-09-13 11:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 11:00:13","page":1} 
[2026-09-13 11:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 10:15:11","window_to":"2026-09-13 11:15:11"} 
[2026-09-13 11:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 11:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 11:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 10:30:13","window_to":"2026-09-13 11:30:13"} 
[2026-09-13 11:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 11:15:11","page":1} 
[2026-09-13 11:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 11:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 11:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 11:30:13","page":1} 
[2026-09-13 11:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 10:45:13","window_to":"2026-09-13 11:45:13"} 
[2026-09-13 11:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 11:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 12:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 11:45:13","page":1} 
[2026-09-13 12:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 11:00:14","window_to":"2026-09-13 12:00:14"} 
[2026-09-13 12:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 12:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 12:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-13 11:00:27","window_to":"2026-09-13 12:00:27"} 
[2026-09-13 12:00:31] local.INFO: Automated database backup created successfully: backup_2026_09_13_12_00_27.sql  
[2026-09-13 12:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 12:00:14","page":1} 
[2026-09-13 12:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 11:15:12","window_to":"2026-09-13 12:15:12"} 
[2026-09-13 12:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 12:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 12:30:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 12:15:11","page":1} 
[2026-09-13 12:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 11:30:12","window_to":"2026-09-13 12:30:12"} 
[2026-09-13 12:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 12:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 12:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 11:45:12","window_to":"2026-09-13 12:45:12"} 
[2026-09-13 12:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 12:30:12","page":1} 
[2026-09-13 12:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 12:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 13:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 12:45:13","page":1} 
[2026-09-13 13:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 12:00:13","window_to":"2026-09-13 13:00:13"} 
[2026-09-13 13:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 13:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 13:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-13 12:00:24","window_to":"2026-09-13 13:00:24"} 
[2026-09-13 13:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 12:15:11","window_to":"2026-09-13 13:15:11"} 
[2026-09-13 13:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 13:00:14","page":1} 
[2026-09-13 13:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 13:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 13:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 13:15:12","page":1} 
[2026-09-13 13:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 12:30:13","window_to":"2026-09-13 13:30:13"} 
[2026-09-13 13:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 13:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 13:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 12:45:12","window_to":"2026-09-13 13:45:12"} 
[2026-09-13 13:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 13:30:13","page":1} 
[2026-09-13 13:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 13:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 14:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 13:45:13","page":1} 
[2026-09-13 14:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 13:00:13","window_to":"2026-09-13 14:00:13"} 
[2026-09-13 14:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 14:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 14:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-13 13:00:24","window_to":"2026-09-13 14:00:24"} 
[2026-09-13 14:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 14:00:13","page":1} 
[2026-09-13 14:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 13:15:12","window_to":"2026-09-13 14:15:12"} 
[2026-09-13 14:15:19] local.ERROR: ❌ Exception while polling TikTok leads {"error":"cURL error 35: OpenSSL/3.0.13: error:0A000438:SSL routines::tlsv1 alert internal error (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://business-api.tiktok.com/open_api/v1.3/page/leads/get/?filtering=%7B%22start_time%22%3A%222026-09-13%2014%3A00%3A13%22%7D&page=1&page_size=100"} 
[2026-09-13 14:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 14:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 14:15:12","page":1} 
[2026-09-13 14:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 13:30:14","window_to":"2026-09-13 14:30:14"} 
[2026-09-13 14:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 14:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 14:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 14:30:14","page":1} 
[2026-09-13 14:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 13:45:11","window_to":"2026-09-13 14:45:12"} 
[2026-09-13 14:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 14:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 15:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 14:45:12","page":1} 
[2026-09-13 15:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 14:00:13","window_to":"2026-09-13 15:00:13"} 
[2026-09-13 15:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 15:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 15:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-13 14:00:25","window_to":"2026-09-13 15:00:25"} 
[2026-09-13 15:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 14:15:12","window_to":"2026-09-13 15:15:12"} 
[2026-09-13 15:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 15:00:13","page":1} 
[2026-09-13 15:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 15:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 15:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 15:15:12","page":1} 
[2026-09-13 15:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 14:30:14","window_to":"2026-09-13 15:30:14"} 
[2026-09-13 15:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 15:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 15:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 14:45:12","window_to":"2026-09-13 15:45:12"} 
[2026-09-13 15:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 15:30:14","page":1} 
[2026-09-13 15:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 15:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 16:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 15:45:13","page":1} 
[2026-09-13 16:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 15:00:14","window_to":"2026-09-13 16:00:14"} 
[2026-09-13 16:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 16:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 16:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-13 15:00:26","window_to":"2026-09-13 16:00:26"} 
[2026-09-13 16:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 15:15:11","window_to":"2026-09-13 16:15:11"} 
[2026-09-13 16:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 16:00:14","page":1} 
[2026-09-13 16:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 16:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 16:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 16:15:12","page":1} 
[2026-09-13 16:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 15:30:13","window_to":"2026-09-13 16:30:13"} 
[2026-09-13 16:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 16:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 16:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 16:30:13","page":1} 
[2026-09-13 16:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 15:45:12","window_to":"2026-09-13 16:45:12"} 
[2026-09-13 16:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 16:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 17:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 16:00:14","window_to":"2026-09-13 17:00:14"} 
[2026-09-13 17:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 16:45:12","page":1} 
[2026-09-13 17:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 17:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 17:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-13 16:00:25","window_to":"2026-09-13 17:00:25"} 
[2026-09-13 17:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 17:00:14","page":1} 
[2026-09-13 17:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 16:15:12","window_to":"2026-09-13 17:15:12"} 
[2026-09-13 17:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 17:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 17:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 17:15:12","page":1} 
[2026-09-13 17:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 16:30:13","window_to":"2026-09-13 17:30:13"} 
[2026-09-13 17:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 17:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 17:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 16:45:11","window_to":"2026-09-13 17:45:11"} 
[2026-09-13 17:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 17:30:13","page":1} 
[2026-09-13 17:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 17:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 18:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 17:00:13","window_to":"2026-09-13 18:00:13"} 
[2026-09-13 18:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 17:45:12","page":1} 
[2026-09-13 18:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 18:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 18:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-13 17:00:24","window_to":"2026-09-13 18:00:25"} 
[2026-09-13 18:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 18:00:14","page":1} 
[2026-09-13 18:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 17:15:12","window_to":"2026-09-13 18:15:12"} 
[2026-09-13 18:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 18:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 18:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 18:15:12","page":1} 
[2026-09-13 18:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 17:30:13","window_to":"2026-09-13 18:30:13"} 
[2026-09-13 18:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 18:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 18:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 18:30:13","page":1} 
[2026-09-13 18:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 17:45:12","window_to":"2026-09-13 18:45:12"} 
[2026-09-13 18:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 18:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 19:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 18:00:14","window_to":"2026-09-13 19:00:14"} 
[2026-09-13 19:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 18:45:12","page":1} 
[2026-09-13 19:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 19:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 19:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-13 18:00:26","window_to":"2026-09-13 19:00:26"} 
[2026-09-13 19:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 19:00:15","page":1} 
[2026-09-13 19:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 18:15:12","window_to":"2026-09-13 19:15:12"} 
[2026-09-13 19:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 19:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 19:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 19:15:12","page":1} 
[2026-09-13 19:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 18:30:13","window_to":"2026-09-13 19:30:13"} 
[2026-09-13 19:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 19:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 19:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 19:30:13","page":1} 
[2026-09-13 19:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 18:45:12","window_to":"2026-09-13 19:45:12"} 
[2026-09-13 19:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 19:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 20:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 19:45:12","page":1} 
[2026-09-13 20:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 19:00:13","window_to":"2026-09-13 20:00:13"} 
[2026-09-13 20:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 20:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 20:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-13 19:00:24","window_to":"2026-09-13 20:00:24"} 
[2026-09-13 20:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 19:15:12","window_to":"2026-09-13 20:15:12"} 
[2026-09-13 20:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 20:00:13","page":1} 
[2026-09-13 20:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 20:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 20:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 20:15:12","page":1} 
[2026-09-13 20:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 19:30:14","window_to":"2026-09-13 20:30:14"} 
[2026-09-13 20:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 20:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 20:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 19:45:11","window_to":"2026-09-13 20:45:12"} 
[2026-09-13 20:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 20:30:14","page":1} 
[2026-09-13 20:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 20:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 21:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 20:45:12","page":1} 
[2026-09-13 21:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 20:00:13","window_to":"2026-09-13 21:00:13"} 
[2026-09-13 21:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 21:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 21:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-13 20:00:24","window_to":"2026-09-13 21:00:24"} 
[2026-09-13 21:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 21:00:13","page":1} 
[2026-09-13 21:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 20:15:11","window_to":"2026-09-13 21:15:11"} 
[2026-09-13 21:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 21:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 21:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 20:30:13","window_to":"2026-09-13 21:30:13"} 
[2026-09-13 21:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 21:15:11","page":1} 
[2026-09-13 21:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 21:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 21:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 20:45:11","window_to":"2026-09-13 21:45:12"} 
[2026-09-13 21:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 21:30:13","page":1} 
[2026-09-13 21:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 21:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 22:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 21:45:12","page":1} 
[2026-09-13 22:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 21:00:14","window_to":"2026-09-13 22:00:14"} 
[2026-09-13 22:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 22:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 22:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-13 21:00:24","window_to":"2026-09-13 22:00:24"} 
[2026-09-13 22:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 21:15:11","window_to":"2026-09-13 22:15:11"} 
[2026-09-13 22:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 22:00:13","page":1} 
[2026-09-13 22:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 22:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 22:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 22:15:12","page":1} 
[2026-09-13 22:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 21:30:14","window_to":"2026-09-13 22:30:14"} 
[2026-09-13 22:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 22:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 22:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 22:30:14","page":1} 
[2026-09-13 22:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 21:45:13","window_to":"2026-09-13 22:45:13"} 
[2026-09-13 22:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 22:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 23:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 22:00:13","window_to":"2026-09-13 23:00:13"} 
[2026-09-13 23:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 22:45:12","page":1} 
[2026-09-13 23:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 23:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 23:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-13 22:00:24","window_to":"2026-09-13 23:00:24"} 
[2026-09-13 23:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 23:00:13","page":1} 
[2026-09-13 23:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 22:15:11","window_to":"2026-09-13 23:15:11"} 
[2026-09-13 23:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 23:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 23:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 22:30:12","window_to":"2026-09-13 23:30:12"} 
[2026-09-13 23:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 23:15:11","page":1} 
[2026-09-13 23:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 23:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-13 23:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 22:45:11","window_to":"2026-09-13 23:45:11"} 
[2026-09-13 23:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 23:30:13","page":1} 
[2026-09-13 23:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-13 23:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 00:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 23:00:13","window_to":"2026-09-14 00:00:13"} 
[2026-09-14 00:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-13 23:45:12","page":1} 
[2026-09-14 00:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 00:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 00:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-13 23:00:26","window_to":"2026-09-14 00:00:26"} 
[2026-09-14 00:00:26] local.INFO: Student payment status check queued {"batches":1,"students":1} 
[2026-09-14 00:00:29] local.INFO: Student payment status cron evaluated {"student_id":5,"admission_no":"26/000001","outstanding_amount":24000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-14 00:00:32] local.INFO: Automated database backup created successfully: backup_2026_09_14_00_00_26.sql  
[2026-09-14 00:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 00:00:13","page":1} 
[2026-09-14 00:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 23:15:12","window_to":"2026-09-14 00:15:12"} 
[2026-09-14 00:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 00:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 00:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 23:30:12","window_to":"2026-09-14 00:30:13"} 
[2026-09-14 00:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 00:15:12","page":1} 
[2026-09-14 00:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 00:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 00:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 00:30:13","page":1} 
[2026-09-14 00:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-13 23:45:12","window_to":"2026-09-14 00:45:12"} 
[2026-09-14 00:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 00:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 01:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 00:00:13","window_to":"2026-09-14 01:00:14"} 
[2026-09-14 01:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 00:45:11","page":1} 
[2026-09-14 01:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 01:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 01:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-14 00:00:26","window_to":"2026-09-14 01:00:26"} 
[2026-09-14 01:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 01:00:14","page":1} 
[2026-09-14 01:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 00:15:12","window_to":"2026-09-14 01:15:12"} 
[2026-09-14 01:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 01:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 01:30:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 00:30:12","window_to":"2026-09-14 01:30:12"} 
[2026-09-14 01:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 01:15:12","page":1} 
[2026-09-14 01:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 01:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 01:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 00:45:11","window_to":"2026-09-14 01:45:12"} 
[2026-09-14 01:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 01:30:13","page":1} 
[2026-09-14 01:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 01:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 02:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 01:45:12","page":1} 
[2026-09-14 02:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 01:00:13","window_to":"2026-09-14 02:00:13"} 
[2026-09-14 02:00:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 02:00:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 02:00:23] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-14 01:00:22","window_to":"2026-09-14 02:00:22"} 
[2026-09-14 02:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 02:00:12","page":1} 
[2026-09-14 02:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 01:15:10","window_to":"2026-09-14 02:15:10"} 
[2026-09-14 02:15:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 02:15:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 02:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 01:30:12","window_to":"2026-09-14 02:30:12"} 
[2026-09-14 02:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 02:15:10","page":1} 
[2026-09-14 02:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 02:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 02:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 01:45:11","window_to":"2026-09-14 02:45:12"} 
[2026-09-14 02:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 02:30:13","page":1} 
[2026-09-14 02:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 02:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 03:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 02:45:12","page":1} 
[2026-09-14 03:00:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 02:00:11","window_to":"2026-09-14 03:00:11"} 
[2026-09-14 03:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 03:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 03:00:21] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-14 02:00:21","window_to":"2026-09-14 03:00:21"} 
[2026-09-14 03:15:10] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 02:15:10","window_to":"2026-09-14 03:15:10"} 
[2026-09-14 03:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 03:00:12","page":1} 
[2026-09-14 03:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 03:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 03:30:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 03:15:11","page":1} 
[2026-09-14 03:30:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 02:30:12","window_to":"2026-09-14 03:30:12"} 
[2026-09-14 03:30:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 03:30:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 03:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 03:30:12","page":1} 
[2026-09-14 03:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 02:45:11","window_to":"2026-09-14 03:45:11"} 
[2026-09-14 03:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 03:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 04:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 03:00:13","window_to":"2026-09-14 04:00:13"} 
[2026-09-14 04:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 03:45:11","page":1} 
[2026-09-14 04:00:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 04:00:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 04:00:22] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-14 03:00:22","window_to":"2026-09-14 04:00:22"} 
[2026-09-14 04:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 04:00:13","page":1} 
[2026-09-14 04:15:10] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 03:15:10","window_to":"2026-09-14 04:15:10"} 
[2026-09-14 04:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 04:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 04:30:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 03:30:11","window_to":"2026-09-14 04:30:11"} 
[2026-09-14 04:30:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 04:15:10","page":1} 
[2026-09-14 04:30:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 04:30:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 04:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 04:30:12","page":1} 
[2026-09-14 04:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 03:45:12","window_to":"2026-09-14 04:45:12"} 
[2026-09-14 04:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 04:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 05:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 04:45:12","page":1} 
[2026-09-14 05:00:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 04:00:12","window_to":"2026-09-14 05:00:12"} 
[2026-09-14 05:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 05:00:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 05:00:22] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-14 04:00:22","window_to":"2026-09-14 05:00:22"} 
[2026-09-14 05:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 05:00:12","page":1} 
[2026-09-14 05:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 04:15:10","window_to":"2026-09-14 05:15:11"} 
[2026-09-14 05:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 05:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 05:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 04:30:14","window_to":"2026-09-14 05:30:14"} 
[2026-09-14 05:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 05:15:11","page":1} 
[2026-09-14 05:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 05:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 05:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 05:30:15","page":1} 
[2026-09-14 05:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 04:45:11","window_to":"2026-09-14 05:45:11"} 
[2026-09-14 05:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 05:45:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 06:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 05:45:11","page":1} 
[2026-09-14 06:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 05:00:12","window_to":"2026-09-14 06:00:12"} 
[2026-09-14 06:00:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 06:00:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 06:00:22] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-14 05:00:22","window_to":"2026-09-14 06:00:22"} 
[2026-09-14 06:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 06:00:12","page":1} 
[2026-09-14 06:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 05:15:12","window_to":"2026-09-14 06:15:12"} 
[2026-09-14 06:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 06:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 06:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 05:30:13","window_to":"2026-09-14 06:30:13"} 
[2026-09-14 06:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 06:15:12","page":1} 
[2026-09-14 06:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 06:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 06:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 06:30:13","page":1} 
[2026-09-14 06:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 05:45:11","window_to":"2026-09-14 06:45:12"} 
[2026-09-14 06:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 06:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 07:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 06:45:11","page":1} 
[2026-09-14 07:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 06:00:15","window_to":"2026-09-14 07:00:15"} 
[2026-09-14 07:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 07:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 07:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-14 06:00:27","window_to":"2026-09-14 07:00:27"} 
[2026-09-14 07:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 06:15:12","window_to":"2026-09-14 07:15:12"} 
[2026-09-14 07:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 07:00:16","page":1} 
[2026-09-14 07:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 07:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 07:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 06:30:13","window_to":"2026-09-14 07:30:13"} 
[2026-09-14 07:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 07:15:12","page":1} 
[2026-09-14 07:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 07:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 07:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 06:45:11","window_to":"2026-09-14 07:45:12"} 
[2026-09-14 07:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 07:30:13","page":1} 
[2026-09-14 07:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 07:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 08:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 07:45:13","page":1} 
[2026-09-14 08:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 07:00:14","window_to":"2026-09-14 08:00:14"} 
[2026-09-14 08:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 08:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 08:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-14 07:00:26","window_to":"2026-09-14 08:00:26"} 
[2026-09-14 08:00:27] local.INFO: Payment reminders queued {"batches":1,"students":1} 
[2026-09-14 08:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 08:00:14","page":1} 
[2026-09-14 08:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 07:15:12","window_to":"2026-09-14 08:15:12"} 
[2026-09-14 08:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 08:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 08:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 08:15:11","page":1} 
[2026-09-14 08:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 07:30:15","window_to":"2026-09-14 08:30:15"} 
[2026-09-14 08:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 08:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 08:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 07:45:12","window_to":"2026-09-14 08:45:12"} 
[2026-09-14 08:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 08:30:14","page":1} 
[2026-09-14 08:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 08:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 09:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 08:45:12","page":1} 
[2026-09-14 09:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 08:00:14","window_to":"2026-09-14 09:00:14"} 
[2026-09-14 09:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 09:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 09:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-14 08:00:27","window_to":"2026-09-14 09:00:27"} 
[2026-09-14 09:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 08:15:11","window_to":"2026-09-14 09:15:12"} 
[2026-09-14 09:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 09:00:14","page":1} 
[2026-09-14 09:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 09:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 09:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 08:30:13","window_to":"2026-09-14 09:30:14"} 
[2026-09-14 09:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 09:15:12","page":1} 
[2026-09-14 09:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 09:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 09:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 08:45:13","window_to":"2026-09-14 09:45:13"} 
[2026-09-14 09:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 09:30:14","page":1} 
[2026-09-14 09:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 09:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 10:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 09:00:13","window_to":"2026-09-14 10:00:14"} 
[2026-09-14 10:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 09:45:13","page":1} 
[2026-09-14 10:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 10:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 10:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-14 09:00:25","window_to":"2026-09-14 10:00:26"} 
[2026-09-14 10:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 10:00:14","page":1} 
[2026-09-14 10:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 09:15:12","window_to":"2026-09-14 10:15:12"} 
[2026-09-14 10:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 10:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 10:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 10:15:12","page":1} 
[2026-09-14 10:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 09:30:12","window_to":"2026-09-14 10:30:13"} 
[2026-09-14 10:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 10:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 10:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 09:45:11","window_to":"2026-09-14 10:45:12"} 
[2026-09-14 10:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 10:30:13","page":1} 
[2026-09-14 10:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 10:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 11:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 10:45:12","page":1} 
[2026-09-14 11:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 10:00:15","window_to":"2026-09-14 11:00:15"} 
[2026-09-14 11:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 11:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 11:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-14 10:00:27","window_to":"2026-09-14 11:00:27"} 
[2026-09-14 11:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 10:15:12","window_to":"2026-09-14 11:15:12"} 
[2026-09-14 11:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 11:00:15","page":1} 
[2026-09-14 11:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 11:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 11:22:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-14 11:22:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-14 11:22:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-14 11:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 10:30:14","window_to":"2026-09-14 11:30:14"} 
[2026-09-14 11:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 11:15:13","page":1} 
[2026-09-14 11:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 11:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 11:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 11:30:15","page":1} 
[2026-09-14 11:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 10:45:13","window_to":"2026-09-14 11:45:13"} 
[2026-09-14 11:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 11:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 11:48:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-14 12:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 11:45:13","page":1} 
[2026-09-14 12:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 11:00:15","window_to":"2026-09-14 12:00:15"} 
[2026-09-14 12:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 12:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 12:00:28] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-14 11:00:28","window_to":"2026-09-14 12:00:28"} 
[2026-09-14 12:00:33] local.INFO: Automated database backup created successfully: backup_2026_09_14_12_00_29.sql  
[2026-09-14 12:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 11:15:13","window_to":"2026-09-14 12:15:13"} 
[2026-09-14 12:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 12:00:15","page":1} 
[2026-09-14 12:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 12:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 12:23:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-14 12:23:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-14 12:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 12:15:14","page":1} 
[2026-09-14 12:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 11:30:14","window_to":"2026-09-14 12:30:14"} 
[2026-09-14 12:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 12:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 12:44:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-14 12:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 11:45:14","window_to":"2026-09-14 12:45:14"} 
[2026-09-14 12:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 12:30:14","page":1} 
[2026-09-14 12:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 12:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 13:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 12:45:14","page":1} 
[2026-09-14 13:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 12:00:15","window_to":"2026-09-14 13:00:15"} 
[2026-09-14 13:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 13:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 13:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-14 12:00:26","window_to":"2026-09-14 13:00:26"} 
[2026-09-14 13:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 13:00:14","page":1} 
[2026-09-14 13:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 12:15:11","window_to":"2026-09-14 13:15:12"} 
[2026-09-14 13:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 13:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 13:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 12:30:13","window_to":"2026-09-14 13:30:13"} 
[2026-09-14 13:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 13:15:12","page":1} 
[2026-09-14 13:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 13:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 13:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 13:30:14","page":1} 
[2026-09-14 13:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 12:45:13","window_to":"2026-09-14 13:45:13"} 
[2026-09-14 13:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 13:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 14:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 13:00:14","window_to":"2026-09-14 14:00:14"} 
[2026-09-14 14:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 13:45:13","page":1} 
[2026-09-14 14:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 14:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 14:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-14 13:00:26","window_to":"2026-09-14 14:00:26"} 
[2026-09-14 14:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 13:15:13","window_to":"2026-09-14 14:15:13"} 
[2026-09-14 14:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 14:00:15","page":1} 
[2026-09-14 14:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 14:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 14:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 14:15:14","page":1} 
[2026-09-14 14:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 13:30:13","window_to":"2026-09-14 14:30:13"} 
[2026-09-14 14:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 14:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 14:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 14:30:13","page":1} 
[2026-09-14 14:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 13:45:14","window_to":"2026-09-14 14:45:14"} 
[2026-09-14 14:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 14:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 15:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 14:45:13","page":1} 
[2026-09-14 15:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 14:00:15","window_to":"2026-09-14 15:00:15"} 
[2026-09-14 15:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 15:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 15:00:28] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-14 14:00:28","window_to":"2026-09-14 15:00:28"} 
[2026-09-14 15:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 14:15:11","window_to":"2026-09-14 15:15:11"} 
[2026-09-14 15:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 15:00:16","page":1} 
[2026-09-14 15:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 15:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 15:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 14:30:13","window_to":"2026-09-14 15:30:13"} 
[2026-09-14 15:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 15:15:12","page":1} 
[2026-09-14 15:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 15:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 15:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 15:30:14","page":1} 
[2026-09-14 15:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 14:45:13","window_to":"2026-09-14 15:45:13"} 
[2026-09-14 15:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 15:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 16:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 15:45:13","page":1} 
[2026-09-14 16:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 15:00:14","window_to":"2026-09-14 16:00:14"} 
[2026-09-14 16:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 16:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 16:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-14 15:00:25","window_to":"2026-09-14 16:00:25"} 
[2026-09-14 16:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 15:15:12","window_to":"2026-09-14 16:15:12"} 
[2026-09-14 16:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 16:00:14","page":1} 
[2026-09-14 16:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 16:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 16:30:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 15:30:12","window_to":"2026-09-14 16:30:12"} 
[2026-09-14 16:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 16:15:12","page":1} 
[2026-09-14 16:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 16:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 16:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 15:45:12","window_to":"2026-09-14 16:45:12"} 
[2026-09-14 16:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 16:30:13","page":1} 
[2026-09-14 16:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 16:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 17:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 16:45:13","page":1} 
[2026-09-14 17:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 16:00:14","window_to":"2026-09-14 17:00:14"} 
[2026-09-14 17:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 17:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 17:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-14 16:00:26","window_to":"2026-09-14 17:00:26"} 
[2026-09-14 17:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 16:15:13","window_to":"2026-09-14 17:15:13"} 
[2026-09-14 17:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 17:00:14","page":1} 
[2026-09-14 17:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 17:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 17:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 16:30:14","window_to":"2026-09-14 17:30:15"} 
[2026-09-14 17:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 17:15:13","page":1} 
[2026-09-14 17:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 17:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 17:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 16:45:14","window_to":"2026-09-14 17:45:14"} 
[2026-09-14 17:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 17:30:15","page":1} 
[2026-09-14 17:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 17:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 18:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 17:00:14","window_to":"2026-09-14 18:00:14"} 
[2026-09-14 18:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 17:45:15","page":1} 
[2026-09-14 18:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 18:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 18:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-14 17:00:27","window_to":"2026-09-14 18:00:27"} 
[2026-09-14 18:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 18:00:16","page":1} 
[2026-09-14 18:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 17:15:13","window_to":"2026-09-14 18:15:13"} 
[2026-09-14 18:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 18:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 18:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 18:15:13","page":1} 
[2026-09-14 18:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 17:30:16","window_to":"2026-09-14 18:30:16"} 
[2026-09-14 18:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 18:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 18:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 18:30:16","page":1} 
[2026-09-14 18:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 17:45:13","window_to":"2026-09-14 18:45:13"} 
[2026-09-14 18:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 18:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 19:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 18:00:14","window_to":"2026-09-14 19:00:15"} 
[2026-09-14 19:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 18:45:13","page":1} 
[2026-09-14 19:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 19:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 19:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-14 18:00:26","window_to":"2026-09-14 19:00:26"} 
[2026-09-14 19:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 19:00:15","page":1} 
[2026-09-14 19:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 18:15:12","window_to":"2026-09-14 19:15:12"} 
[2026-09-14 19:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 19:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 19:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 19:15:12","page":1} 
[2026-09-14 19:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 18:30:13","window_to":"2026-09-14 19:30:14"} 
[2026-09-14 19:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 19:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 19:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 18:45:12","window_to":"2026-09-14 19:45:12"} 
[2026-09-14 19:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 19:30:14","page":1} 
[2026-09-14 19:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 19:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 20:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 19:00:14","window_to":"2026-09-14 20:00:14"} 
[2026-09-14 20:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 19:45:12","page":1} 
[2026-09-14 20:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 20:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 20:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-14 19:00:26","window_to":"2026-09-14 20:00:26"} 
[2026-09-14 20:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 20:00:14","page":1} 
[2026-09-14 20:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 19:15:13","window_to":"2026-09-14 20:15:13"} 
[2026-09-14 20:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 20:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 20:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 19:30:14","window_to":"2026-09-14 20:30:14"} 
[2026-09-14 20:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 20:15:13","page":1} 
[2026-09-14 20:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 20:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 20:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 19:45:13","window_to":"2026-09-14 20:45:13"} 
[2026-09-14 20:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 20:30:15","page":1} 
[2026-09-14 20:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 20:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 21:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 20:45:13","page":1} 
[2026-09-14 21:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 20:00:14","window_to":"2026-09-14 21:00:14"} 
[2026-09-14 21:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 21:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 21:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-14 20:00:26","window_to":"2026-09-14 21:00:26"} 
[2026-09-14 21:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 20:15:12","window_to":"2026-09-14 21:15:12"} 
[2026-09-14 21:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 21:00:14","page":1} 
[2026-09-14 21:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 21:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 21:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 20:30:13","window_to":"2026-09-14 21:30:14"} 
[2026-09-14 21:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 21:15:12","page":1} 
[2026-09-14 21:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 21:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 21:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 21:30:14","page":1} 
[2026-09-14 21:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 20:45:13","window_to":"2026-09-14 21:45:13"} 
[2026-09-14 21:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 21:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 22:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 21:00:16","window_to":"2026-09-14 22:00:16"} 
[2026-09-14 22:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 21:45:13","page":1} 
[2026-09-14 22:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 22:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 22:00:29] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-14 21:00:28","window_to":"2026-09-14 22:00:29"} 
[2026-09-14 22:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 21:15:12","window_to":"2026-09-14 22:15:12"} 
[2026-09-14 22:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 22:00:17","page":1} 
[2026-09-14 22:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 22:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 22:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 21:30:13","window_to":"2026-09-14 22:30:14"} 
[2026-09-14 22:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 22:15:13","page":1} 
[2026-09-14 22:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 22:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 22:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 22:30:14","page":1} 
[2026-09-14 22:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 21:45:13","window_to":"2026-09-14 22:45:13"} 
[2026-09-14 22:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 22:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 23:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 22:00:14","window_to":"2026-09-14 23:00:14"} 
[2026-09-14 23:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 22:45:13","page":1} 
[2026-09-14 23:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 23:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 23:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-14 22:00:26","window_to":"2026-09-14 23:00:26"} 
[2026-09-14 23:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 23:00:15","page":1} 
[2026-09-14 23:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 22:15:12","window_to":"2026-09-14 23:15:12"} 
[2026-09-14 23:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 23:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 23:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 22:30:12","window_to":"2026-09-14 23:30:12"} 
[2026-09-14 23:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 23:15:11","page":1} 
[2026-09-14 23:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 23:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-14 23:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 23:30:13","page":1} 
[2026-09-14 23:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 22:45:12","window_to":"2026-09-14 23:45:12"} 
[2026-09-14 23:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-14 23:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 00:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 23:00:13","window_to":"2026-09-15 00:00:13"} 
[2026-09-15 00:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-14 23:45:12","page":1} 
[2026-09-15 00:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 00:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 00:00:28] local.INFO: Student payment status check queued {"batches":1,"students":1} 
[2026-09-15 00:00:29] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-14 23:00:28","window_to":"2026-09-15 00:00:28"} 
[2026-09-15 00:00:32] local.INFO: Student payment status cron evaluated {"student_id":5,"admission_no":"26/000001","outstanding_amount":24000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-15 00:00:35] local.INFO: Automated database backup created successfully: backup_2026_09_15_00_00_28.sql  
[2026-09-15 00:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 00:00:14","page":1} 
[2026-09-15 00:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 23:15:12","window_to":"2026-09-15 00:15:13"} 
[2026-09-15 00:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 00:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 00:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 23:30:14","window_to":"2026-09-15 00:30:14"} 
[2026-09-15 00:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 00:15:13","page":1} 
[2026-09-15 00:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 00:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 00:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-14 23:45:12","window_to":"2026-09-15 00:45:13"} 
[2026-09-15 00:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 00:30:14","page":1} 
[2026-09-15 00:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 00:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 01:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 00:45:13","page":1} 
[2026-09-15 01:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 00:00:13","window_to":"2026-09-15 01:00:13"} 
[2026-09-15 01:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 01:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 01:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-15 00:00:26","window_to":"2026-09-15 01:00:26"} 
[2026-09-15 01:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 00:15:12","window_to":"2026-09-15 01:15:12"} 
[2026-09-15 01:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 01:00:13","page":1} 
[2026-09-15 01:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 01:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 01:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 00:30:13","window_to":"2026-09-15 01:30:13"} 
[2026-09-15 01:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 01:15:12","page":1} 
[2026-09-15 01:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 01:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 01:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 01:30:14","page":1} 
[2026-09-15 01:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 00:45:11","window_to":"2026-09-15 01:45:11"} 
[2026-09-15 01:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 01:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 02:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 01:45:12","page":1} 
[2026-09-15 02:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 01:00:13","window_to":"2026-09-15 02:00:13"} 
[2026-09-15 02:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 02:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 02:00:23] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-15 01:00:23","window_to":"2026-09-15 02:00:23"} 
[2026-09-15 02:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 01:15:11","window_to":"2026-09-15 02:15:11"} 
[2026-09-15 02:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 02:00:12","page":1} 
[2026-09-15 02:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 02:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 02:30:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 01:30:12","window_to":"2026-09-15 02:30:12"} 
[2026-09-15 02:30:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 02:15:12","page":1} 
[2026-09-15 02:30:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 02:30:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 02:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 02:30:12","page":1} 
[2026-09-15 02:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 01:45:11","window_to":"2026-09-15 02:45:11"} 
[2026-09-15 02:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 02:45:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 03:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 02:00:13","window_to":"2026-09-15 03:00:13"} 
[2026-09-15 03:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 02:45:11","page":1} 
[2026-09-15 03:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 03:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 03:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-15 02:00:24","window_to":"2026-09-15 03:00:24"} 
[2026-09-15 03:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 02:15:11","window_to":"2026-09-15 03:15:11"} 
[2026-09-15 03:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 03:00:14","page":1} 
[2026-09-15 03:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 03:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 03:30:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 02:30:12","window_to":"2026-09-15 03:30:12"} 
[2026-09-15 03:30:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 03:15:12","page":1} 
[2026-09-15 03:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 03:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 03:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 03:30:12","page":1} 
[2026-09-15 03:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 02:45:12","window_to":"2026-09-15 03:45:12"} 
[2026-09-15 03:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 03:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 04:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 03:00:12","window_to":"2026-09-15 04:00:12"} 
[2026-09-15 04:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 03:45:12","page":1} 
[2026-09-15 04:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 04:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 04:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-15 03:00:24","window_to":"2026-09-15 04:00:24"} 
[2026-09-15 04:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 04:00:13","page":1} 
[2026-09-15 04:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 03:15:11","window_to":"2026-09-15 04:15:11"} 
[2026-09-15 04:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 04:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 04:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 04:15:11","page":1} 
[2026-09-15 04:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 03:30:12","window_to":"2026-09-15 04:30:12"} 
[2026-09-15 04:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 04:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 04:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 04:30:13","page":1} 
[2026-09-15 04:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 03:45:11","window_to":"2026-09-15 04:45:11"} 
[2026-09-15 04:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 04:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 05:00:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 04:00:12","window_to":"2026-09-15 05:00:12"} 
[2026-09-15 05:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 04:45:11","page":1} 
[2026-09-15 05:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 05:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 05:00:23] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-15 04:00:22","window_to":"2026-09-15 05:00:22"} 
[2026-09-15 05:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 05:00:13","page":1} 
[2026-09-15 05:15:10] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 04:15:10","window_to":"2026-09-15 05:15:10"} 
[2026-09-15 05:15:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 05:15:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 05:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 04:30:14","window_to":"2026-09-15 05:30:14"} 
[2026-09-15 05:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 05:15:10","page":1} 
[2026-09-15 05:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 05:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 05:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 04:45:12","window_to":"2026-09-15 05:45:12"} 
[2026-09-15 05:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 05:30:14","page":1} 
[2026-09-15 05:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 05:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 06:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 05:00:14","window_to":"2026-09-15 06:00:14"} 
[2026-09-15 06:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 05:45:12","page":1} 
[2026-09-15 06:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 06:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 06:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-15 05:00:26","window_to":"2026-09-15 06:00:26"} 
[2026-09-15 06:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 06:00:15","page":1} 
[2026-09-15 06:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 05:15:12","window_to":"2026-09-15 06:15:12"} 
[2026-09-15 06:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 06:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 06:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 06:15:12","page":1} 
[2026-09-15 06:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 05:30:14","window_to":"2026-09-15 06:30:14"} 
[2026-09-15 06:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 06:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 06:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 06:30:14","page":1} 
[2026-09-15 06:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 05:45:13","window_to":"2026-09-15 06:45:13"} 
[2026-09-15 06:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 06:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 07:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 06:00:15","window_to":"2026-09-15 07:00:16"} 
[2026-09-15 07:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 06:45:13","page":1} 
[2026-09-15 07:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 07:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 07:00:29] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-15 06:00:29","window_to":"2026-09-15 07:00:29"} 
[2026-09-15 07:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 06:15:11","window_to":"2026-09-15 07:15:11"} 
[2026-09-15 07:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 07:00:16","page":1} 
[2026-09-15 07:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 07:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 07:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 06:30:13","window_to":"2026-09-15 07:30:13"} 
[2026-09-15 07:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 07:15:12","page":1} 
[2026-09-15 07:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 07:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 07:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 06:45:12","window_to":"2026-09-15 07:45:12"} 
[2026-09-15 07:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 07:30:13","page":1} 
[2026-09-15 07:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 07:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 08:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 07:00:13","window_to":"2026-09-15 08:00:13"} 
[2026-09-15 08:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 07:45:13","page":1} 
[2026-09-15 08:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 08:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 08:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-15 07:00:25","window_to":"2026-09-15 08:00:25"} 
[2026-09-15 08:00:26] local.INFO: Payment reminders queued {"batches":1,"students":1} 
[2026-09-15 08:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 08:00:13","page":1} 
[2026-09-15 08:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 07:15:11","window_to":"2026-09-15 08:15:12"} 
[2026-09-15 08:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 08:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 08:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 07:30:13","window_to":"2026-09-15 08:30:13"} 
[2026-09-15 08:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 08:15:12","page":1} 
[2026-09-15 08:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 08:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 08:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 07:45:12","window_to":"2026-09-15 08:45:12"} 
[2026-09-15 08:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 08:30:13","page":1} 
[2026-09-15 08:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 08:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 09:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 08:00:14","window_to":"2026-09-15 09:00:15"} 
[2026-09-15 09:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 08:45:13","page":1} 
[2026-09-15 09:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 09:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 09:00:28] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-15 08:00:28","window_to":"2026-09-15 09:00:28"} 
[2026-09-15 09:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 09:00:15","page":1} 
[2026-09-15 09:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 08:15:11","window_to":"2026-09-15 09:15:12"} 
[2026-09-15 09:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 09:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 09:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 09:15:11","page":1} 
[2026-09-15 09:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 08:30:14","window_to":"2026-09-15 09:30:14"} 
[2026-09-15 09:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 09:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 09:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 08:45:14","window_to":"2026-09-15 09:45:14"} 
[2026-09-15 09:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 09:30:14","page":1} 
[2026-09-15 09:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 09:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 10:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 09:00:15","window_to":"2026-09-15 10:00:15"} 
[2026-09-15 10:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 09:45:14","page":1} 
[2026-09-15 10:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 10:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 10:00:29] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-15 09:00:29","window_to":"2026-09-15 10:00:29"} 
[2026-09-15 10:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 10:00:16","page":1} 
[2026-09-15 10:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 09:15:12","window_to":"2026-09-15 10:15:13"} 
[2026-09-15 10:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 10:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 10:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 09:30:13","window_to":"2026-09-15 10:30:13"} 
[2026-09-15 10:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 10:15:12","page":1} 
[2026-09-15 10:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 10:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 10:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 10:30:15","page":1} 
[2026-09-15 10:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 09:45:13","window_to":"2026-09-15 10:45:13"} 
[2026-09-15 10:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 10:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 11:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 10:45:13","page":1} 
[2026-09-15 11:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 10:00:16","window_to":"2026-09-15 11:00:16"} 
[2026-09-15 11:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 11:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 11:00:28] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-15 10:00:28","window_to":"2026-09-15 11:00:28"} 
[2026-09-15 11:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 10:15:13","window_to":"2026-09-15 11:15:13"} 
[2026-09-15 11:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 11:00:15","page":1} 
[2026-09-15 11:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 11:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 11:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 11:15:13","page":1} 
[2026-09-15 11:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 10:30:14","window_to":"2026-09-15 11:30:14"} 
[2026-09-15 11:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 11:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 11:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 11:30:15","page":1} 
[2026-09-15 11:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 10:45:14","window_to":"2026-09-15 11:45:14"} 
[2026-09-15 11:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 11:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 12:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 11:00:16","window_to":"2026-09-15 12:00:16"} 
[2026-09-15 12:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 11:45:14","page":1} 
[2026-09-15 12:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 12:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 12:00:30] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-15 11:00:30","window_to":"2026-09-15 12:00:30"} 
[2026-09-15 12:00:37] local.INFO: Automated database backup created successfully: backup_2026_09_15_12_00_31.sql  
[2026-09-15 12:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 12:00:16","page":1} 
[2026-09-15 12:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 11:15:13","window_to":"2026-09-15 12:15:13"} 
[2026-09-15 12:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 12:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 12:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 12:15:13","page":1} 
[2026-09-15 12:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 11:30:15","window_to":"2026-09-15 12:30:15"} 
[2026-09-15 12:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 12:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 12:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 11:45:15","window_to":"2026-09-15 12:45:15"} 
[2026-09-15 12:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 12:30:15","page":1} 
[2026-09-15 12:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 12:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 13:00:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 13:00:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 13:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 12:45:15","page":1} 
[2026-09-15 13:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 12:00:18","window_to":"2026-09-15 13:00:18"} 
[2026-09-15 13:00:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 13:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 13:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 13:00:33] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-15 12:00:32","window_to":"2026-09-15 13:00:33"} 
[2026-09-15 13:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 12:15:12","window_to":"2026-09-15 13:15:12"} 
[2026-09-15 13:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 13:00:18","page":1} 
[2026-09-15 13:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 13:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 13:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 13:15:13","page":1} 
[2026-09-15 13:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 12:30:14","window_to":"2026-09-15 13:30:15"} 
[2026-09-15 13:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 13:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 13:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 13:30:14","page":1} 
[2026-09-15 13:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 12:45:14","window_to":"2026-09-15 13:45:14"} 
[2026-09-15 13:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 13:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 13:55:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 14:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 13:45:14","page":1} 
[2026-09-15 14:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 13:00:15","window_to":"2026-09-15 14:00:16"} 
[2026-09-15 14:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 14:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 14:00:28] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-15 13:00:28","window_to":"2026-09-15 14:00:28"} 
[2026-09-15 14:00:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 14:00:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 14:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 14:00:16","page":1} 
[2026-09-15 14:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 13:15:13","window_to":"2026-09-15 14:15:13"} 
[2026-09-15 14:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 14:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 14:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 13:30:13","window_to":"2026-09-15 14:30:14"} 
[2026-09-15 14:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 14:15:13","page":1} 
[2026-09-15 14:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 14:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 14:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 13:45:14","window_to":"2026-09-15 14:45:15"} 
[2026-09-15 14:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 14:30:14","page":1} 
[2026-09-15 14:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 14:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 14:50:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 14:45:15","page":1} 
[2026-09-15 15:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 14:00:16","window_to":"2026-09-15 15:00:17"} 
[2026-09-15 15:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 15:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 15:00:28] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-15 14:00:28","window_to":"2026-09-15 15:00:28"} 
[2026-09-15 15:00:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:00:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 14:15:14","window_to":"2026-09-15 15:15:14"} 
[2026-09-15 15:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 15:00:16","page":1} 
[2026-09-15 15:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 15:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 15:22:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:22:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:23:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:23:55] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:24:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:24:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:25:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:25:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:26:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:26:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:27:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:27:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:28:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:28:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:29:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:29:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:30:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 15:15:15","page":1} 
[2026-09-15 15:30:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 14:30:22","window_to":"2026-09-15 15:30:22"} 
[2026-09-15 15:30:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 15:30:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 15:30:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:30:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:31:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:31:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:32:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:32:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:33:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:33:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:34:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:34:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:35:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:35:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:36:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:36:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:37:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:37:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:38:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:38:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:39:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:39:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:40:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:40:55] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:41:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:41:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:42:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:42:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:43:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:43:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:44:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:44:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 14:45:15","window_to":"2026-09-15 15:45:15"} 
[2026-09-15 15:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 15:30:21","page":1} 
[2026-09-15 15:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 15:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 15:45:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:45:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:45:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:46:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:46:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:47:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:47:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:48:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:48:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:49:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:49:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:50:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:50:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:51:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:51:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:52:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:52:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:53:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:53:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:54:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:54:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:55:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:55:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:56:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:56:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:57:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:57:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:58:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:58:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:59:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 15:59:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 15:00:17","window_to":"2026-09-15 16:00:18"} 
[2026-09-15 16:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 15:45:16","page":1} 
[2026-09-15 16:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 16:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 16:00:32] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-15 15:00:31","window_to":"2026-09-15 16:00:31"} 
[2026-09-15 16:00:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:00:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:01:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:01:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:02:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:02:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:03:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:03:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:04:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:04:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:05:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:05:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:06:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:06:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:07:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:07:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:08:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:08:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:09:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:09:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:10:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:10:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:11:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:11:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:12:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:12:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:13:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:13:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:14:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:14:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 16:00:18","page":1} 
[2026-09-15 16:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 15:15:14","window_to":"2026-09-15 16:15:14"} 
[2026-09-15 16:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 16:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 16:15:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:15:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:16:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:16:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:17:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:17:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:18:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:18:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:19:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:19:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:20:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:20:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:21:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:21:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:22:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:22:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:23:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:23:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:24:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:24:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:25:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:25:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:26:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:26:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:27:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:27:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:28:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:28:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:29:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:29:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 16:15:14","page":1} 
[2026-09-15 16:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 15:30:16","window_to":"2026-09-15 16:30:16"} 
[2026-09-15 16:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 16:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 16:30:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:30:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:31:50] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:31:50] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:31:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:32:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:32:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:32:43] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:32:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:32:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:33:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:33:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:34:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:34:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:35:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:35:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:36:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:36:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:37:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:37:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:38:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:38:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:39:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:39:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:40:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:40:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:41:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:41:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:42:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:42:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:43:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:43:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:44:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:44:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 15:45:14","window_to":"2026-09-15 16:45:14"} 
[2026-09-15 16:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 16:30:16","page":1} 
[2026-09-15 16:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 16:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 16:45:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:45:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:46:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:46:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:47:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:47:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:48:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:48:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:49:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:49:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:50:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:50:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:51:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:51:55] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:52:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:52:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:53:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:53:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:54:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:54:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:55:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:55:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:56:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:56:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:57:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:57:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:58:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:58:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:59:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 16:59:55] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 16:45:14","page":1} 
[2026-09-15 17:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 16:00:15","window_to":"2026-09-15 17:00:15"} 
[2026-09-15 17:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 17:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 17:00:28] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-15 16:00:28","window_to":"2026-09-15 17:00:28"} 
[2026-09-15 17:00:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:00:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:01:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:01:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:02:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:02:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:03:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:03:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:04:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:04:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:05:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:05:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:06:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:06:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:07:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:07:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:08:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:08:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:09:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:09:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:10:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:10:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:11:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:11:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:12:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:12:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:13:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:13:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:14:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:14:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 16:15:13","window_to":"2026-09-15 17:15:13"} 
[2026-09-15 17:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 17:00:15","page":1} 
[2026-09-15 17:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 17:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 17:15:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:15:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:16:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:16:55] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:17:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:17:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:18:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:18:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:19:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:19:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:20:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:20:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:21:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:21:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:22:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:22:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:23:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:23:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:24:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:24:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:25:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:25:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:26:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:26:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:27:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:27:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:27:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:28:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:28:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:29:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:29:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 16:30:15","window_to":"2026-09-15 17:30:15"} 
[2026-09-15 17:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 17:15:13","page":1} 
[2026-09-15 17:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 17:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 17:30:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:30:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:31:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:31:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:32:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:32:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:33:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:33:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:34:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:34:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:35:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:35:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:36:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:36:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:37:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:37:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:38:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:38:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:39:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:39:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:40:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:40:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:41:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:41:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:42:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:42:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:43:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:43:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:44:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:44:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 17:30:15","page":1} 
[2026-09-15 17:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 17:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 17:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 16:45:15","window_to":"2026-09-15 17:45:15"} 
[2026-09-15 17:45:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:45:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:46:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:46:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:47:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:47:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:48:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:48:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:49:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:49:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:50:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:50:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:51:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:51:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:52:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:52:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:53:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:53:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:54:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:54:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:55:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:55:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 17:55:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-15 18:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 17:45:13","page":1} 
[2026-09-15 18:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 17:00:17","window_to":"2026-09-15 18:00:18"} 
[2026-09-15 18:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 18:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 18:00:32] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-15 17:00:31","window_to":"2026-09-15 18:00:31"} 
[2026-09-15 18:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 18:00:18","page":1} 
[2026-09-15 18:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 17:15:13","window_to":"2026-09-15 18:15:13"} 
[2026-09-15 18:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 18:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 18:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 17:30:16","window_to":"2026-09-15 18:30:16"} 
[2026-09-15 18:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 18:15:14","page":1} 
[2026-09-15 18:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 18:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 18:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 17:45:15","window_to":"2026-09-15 18:45:15"} 
[2026-09-15 18:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 18:30:17","page":1} 
[2026-09-15 18:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 18:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 19:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 18:45:16","page":1} 
[2026-09-15 19:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 18:00:17","window_to":"2026-09-15 19:00:18"} 
[2026-09-15 19:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 19:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 19:00:33] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-15 18:00:33","window_to":"2026-09-15 19:00:33"} 
[2026-09-15 19:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 18:15:15","window_to":"2026-09-15 19:15:15"} 
[2026-09-15 19:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 19:00:17","page":1} 
[2026-09-15 19:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 19:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 19:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 19:15:15","page":1} 
[2026-09-15 19:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 18:30:15","window_to":"2026-09-15 19:30:15"} 
[2026-09-15 19:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 19:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 19:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 19:30:15","page":1} 
[2026-09-15 19:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 18:45:13","window_to":"2026-09-15 19:45:13"} 
[2026-09-15 19:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 19:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 20:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 19:00:16","window_to":"2026-09-15 20:00:16"} 
[2026-09-15 20:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 19:45:13","page":1} 
[2026-09-15 20:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 20:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 20:00:29] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-15 19:00:29","window_to":"2026-09-15 20:00:29"} 
[2026-09-15 20:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 19:15:12","window_to":"2026-09-15 20:15:12"} 
[2026-09-15 20:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 20:00:16","page":1} 
[2026-09-15 20:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 20:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 20:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 20:15:12","page":1} 
[2026-09-15 20:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 19:30:14","window_to":"2026-09-15 20:30:15"} 
[2026-09-15 20:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 20:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 20:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 20:30:14","page":1} 
[2026-09-15 20:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 19:45:15","window_to":"2026-09-15 20:45:15"} 
[2026-09-15 20:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 20:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 21:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 20:00:16","window_to":"2026-09-15 21:00:17"} 
[2026-09-15 21:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 20:45:14","page":1} 
[2026-09-15 21:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 21:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 21:00:32] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-15 20:00:32","window_to":"2026-09-15 21:00:32"} 
[2026-09-15 21:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 21:00:17","page":1} 
[2026-09-15 21:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 21:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 20:15:14","window_to":"2026-09-15 21:15:14"} 
[2026-09-15 21:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 21:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 20:30:17","window_to":"2026-09-15 21:30:17"} 
[2026-09-15 21:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 21:15:13","page":1} 
[2026-09-15 21:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 21:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 21:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 21:30:17","page":1} 
[2026-09-15 21:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 20:45:13","window_to":"2026-09-15 21:45:13"} 
[2026-09-15 21:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 21:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 22:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 21:45:13","page":1} 
[2026-09-15 22:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 21:00:18","window_to":"2026-09-15 22:00:18"} 
[2026-09-15 22:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 22:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 22:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-15 21:00:33","window_to":"2026-09-15 22:00:34"} 
[2026-09-15 22:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 22:00:18","page":1} 
[2026-09-15 22:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 21:15:14","window_to":"2026-09-15 22:15:14"} 
[2026-09-15 22:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 22:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 22:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 22:15:14","page":1} 
[2026-09-15 22:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 21:30:17","window_to":"2026-09-15 22:30:17"} 
[2026-09-15 22:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 22:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 22:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 21:45:14","window_to":"2026-09-15 22:45:14"} 
[2026-09-15 22:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 22:30:17","page":1} 
[2026-09-15 22:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 22:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 23:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 22:45:15","page":1} 
[2026-09-15 23:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 22:00:18","window_to":"2026-09-15 23:00:18"} 
[2026-09-15 23:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 23:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 23:00:32] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-15 22:00:32","window_to":"2026-09-15 23:00:32"} 
[2026-09-15 23:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 23:00:17","page":1} 
[2026-09-15 23:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 22:15:14","window_to":"2026-09-15 23:15:14"} 
[2026-09-15 23:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 23:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 23:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 23:15:14","page":1} 
[2026-09-15 23:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 22:30:16","window_to":"2026-09-15 23:30:16"} 
[2026-09-15 23:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 23:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-15 23:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 22:45:13","window_to":"2026-09-15 23:45:13"} 
[2026-09-15 23:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 23:30:16","page":1} 
[2026-09-15 23:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-15 23:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 00:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 23:00:17","window_to":"2026-09-16 00:00:17"} 
[2026-09-16 00:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-15 23:45:14","page":1} 
[2026-09-16 00:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 00:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 00:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-15 23:00:34","window_to":"2026-09-16 00:00:34"} 
[2026-09-16 00:00:35] local.INFO: Student payment status check queued {"batches":1,"students":1} 
[2026-09-16 00:00:38] local.INFO: Student payment status cron evaluated {"student_id":5,"admission_no":"26/000001","outstanding_amount":24000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-16 00:00:42] local.INFO: Automated database backup created successfully: backup_2026_09_16_00_00_34.sql  
[2026-09-16 00:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 23:15:14","window_to":"2026-09-16 00:15:14"} 
[2026-09-16 00:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 00:00:17","page":1} 
[2026-09-16 00:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 00:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 00:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 00:15:15","page":1} 
[2026-09-16 00:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 23:30:15","window_to":"2026-09-16 00:30:15"} 
[2026-09-16 00:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 00:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 00:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-15 23:45:15","window_to":"2026-09-16 00:45:15"} 
[2026-09-16 00:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 00:30:16","page":1} 
[2026-09-16 00:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 00:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 01:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 00:45:16","page":1} 
[2026-09-16 01:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 00:00:16","window_to":"2026-09-16 01:00:17"} 
[2026-09-16 01:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 01:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 01:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-16 00:00:35","window_to":"2026-09-16 01:00:35"} 
[2026-09-16 01:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 01:00:17","page":1} 
[2026-09-16 01:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 00:15:15","window_to":"2026-09-16 01:15:15"} 
[2026-09-16 01:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 01:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 01:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 00:30:15","window_to":"2026-09-16 01:30:15"} 
[2026-09-16 01:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 01:15:15","page":1} 
[2026-09-16 01:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 01:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 01:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 01:30:15","page":1} 
[2026-09-16 01:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 00:45:15","window_to":"2026-09-16 01:45:15"} 
[2026-09-16 01:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 01:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 02:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 01:45:15","page":1} 
[2026-09-16 02:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 01:00:15","window_to":"2026-09-16 02:00:16"} 
[2026-09-16 02:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 02:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 02:00:30] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-16 01:00:29","window_to":"2026-09-16 02:00:29"} 
[2026-09-16 02:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 02:00:16","page":1} 
[2026-09-16 02:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 01:15:13","window_to":"2026-09-16 02:15:13"} 
[2026-09-16 02:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 02:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 02:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 02:15:13","page":1} 
[2026-09-16 02:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 01:30:15","window_to":"2026-09-16 02:30:15"} 
[2026-09-16 02:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 02:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 02:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 01:45:13","window_to":"2026-09-16 02:45:13"} 
[2026-09-16 02:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 02:30:15","page":1} 
[2026-09-16 02:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 02:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 03:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 02:00:16","window_to":"2026-09-16 03:00:16"} 
[2026-09-16 03:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 02:45:13","page":1} 
[2026-09-16 03:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 03:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 03:00:30] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-16 02:00:29","window_to":"2026-09-16 03:00:30"} 
[2026-09-16 03:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 03:00:17","page":1} 
[2026-09-16 03:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 02:15:15","window_to":"2026-09-16 03:15:15"} 
[2026-09-16 03:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 03:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 03:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 02:30:15","window_to":"2026-09-16 03:30:15"} 
[2026-09-16 03:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 03:15:15","page":1} 
[2026-09-16 03:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 03:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 03:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 02:45:15","window_to":"2026-09-16 03:45:15"} 
[2026-09-16 03:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 03:30:16","page":1} 
[2026-09-16 03:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 03:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 04:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 03:00:17","window_to":"2026-09-16 04:00:17"} 
[2026-09-16 04:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 03:45:16","page":1} 
[2026-09-16 04:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 04:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 04:00:31] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-16 03:00:31","window_to":"2026-09-16 04:00:31"} 
[2026-09-16 04:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 03:15:14","window_to":"2026-09-16 04:15:14"} 
[2026-09-16 04:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 04:00:19","page":1} 
[2026-09-16 04:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 04:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 04:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 04:15:15","page":1} 
[2026-09-16 04:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 03:30:17","window_to":"2026-09-16 04:30:17"} 
[2026-09-16 04:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 04:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 04:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 03:45:15","window_to":"2026-09-16 04:45:15"} 
[2026-09-16 04:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 04:30:17","page":1} 
[2026-09-16 04:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 04:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 05:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 04:45:18","page":1} 
[2026-09-16 05:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 04:00:19","window_to":"2026-09-16 05:00:19"} 
[2026-09-16 05:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 05:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 05:00:33] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-16 04:00:33","window_to":"2026-09-16 05:00:33"} 
[2026-09-16 05:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 04:15:15","window_to":"2026-09-16 05:15:15"} 
[2026-09-16 05:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 05:00:19","page":1} 
[2026-09-16 05:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 05:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 05:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 04:30:18","window_to":"2026-09-16 05:30:18"} 
[2026-09-16 05:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 05:15:16","page":1} 
[2026-09-16 05:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 05:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 05:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 05:30:19","page":1} 
[2026-09-16 05:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 04:45:16","window_to":"2026-09-16 05:45:16"} 
[2026-09-16 05:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 05:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 06:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 05:45:16","page":1} 
[2026-09-16 06:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 05:00:17","window_to":"2026-09-16 06:00:17"} 
[2026-09-16 06:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 06:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 06:00:31] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-16 05:00:31","window_to":"2026-09-16 06:00:31"} 
[2026-09-16 06:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 06:00:17","page":1} 
[2026-09-16 06:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 05:15:16","window_to":"2026-09-16 06:15:17"} 
[2026-09-16 06:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 06:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 06:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 05:30:17","window_to":"2026-09-16 06:30:17"} 
[2026-09-16 06:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 06:15:16","page":1} 
[2026-09-16 06:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 06:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 06:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 06:30:18","page":1} 
[2026-09-16 06:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 05:45:15","window_to":"2026-09-16 06:45:15"} 
[2026-09-16 06:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 06:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 07:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 06:45:15","page":1} 
[2026-09-16 07:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 06:00:18","window_to":"2026-09-16 07:00:18"} 
[2026-09-16 07:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 07:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 07:00:33] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-16 06:00:33","window_to":"2026-09-16 07:00:33"} 
[2026-09-16 07:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 06:15:17","window_to":"2026-09-16 07:15:17"} 
[2026-09-16 07:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 07:00:18","page":1} 
[2026-09-16 07:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 07:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 07:30:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 07:15:18","page":1} 
[2026-09-16 07:30:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 06:30:20","window_to":"2026-09-16 07:30:20"} 
[2026-09-16 07:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 07:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 07:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 07:30:20","page":1} 
[2026-09-16 07:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 06:45:16","window_to":"2026-09-16 07:45:17"} 
[2026-09-16 07:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 07:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 08:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 07:45:16","page":1} 
[2026-09-16 08:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 07:00:18","window_to":"2026-09-16 08:00:19"} 
[2026-09-16 08:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 08:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 08:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-16 07:00:33","window_to":"2026-09-16 08:00:34"} 
[2026-09-16 08:00:34] local.INFO: Payment reminders queued {"batches":1,"students":1} 
[2026-09-16 08:15:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 08:00:18","page":1} 
[2026-09-16 08:15:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 07:15:21","window_to":"2026-09-16 08:15:21"} 
[2026-09-16 08:15:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 08:15:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 08:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 08:15:20","page":1} 
[2026-09-16 08:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 07:30:17","window_to":"2026-09-16 08:30:18"} 
[2026-09-16 08:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 08:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 08:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 08:30:17","page":1} 
[2026-09-16 08:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 08:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 08:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 07:45:17","window_to":"2026-09-16 08:45:17"} 
[2026-09-16 09:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 08:00:18","window_to":"2026-09-16 09:00:19"} 
[2026-09-16 09:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 08:45:16","page":1} 
[2026-09-16 09:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 09:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 09:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-16 08:00:34","window_to":"2026-09-16 09:00:34"} 
[2026-09-16 09:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 08:15:16","window_to":"2026-09-16 09:15:16"} 
[2026-09-16 09:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 09:00:20","page":1} 
[2026-09-16 09:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 09:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 09:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 08:30:19","window_to":"2026-09-16 09:30:19"} 
[2026-09-16 09:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 09:15:17","page":1} 
[2026-09-16 09:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 09:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 09:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 08:45:17","window_to":"2026-09-16 09:45:17"} 
[2026-09-16 09:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 09:30:19","page":1} 
[2026-09-16 09:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 09:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 10:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 09:00:18","window_to":"2026-09-16 10:00:18"} 
[2026-09-16 10:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 09:45:17","page":1} 
[2026-09-16 10:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 10:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 10:00:33] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-16 09:00:32","window_to":"2026-09-16 10:00:32"} 
[2026-09-16 10:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 09:15:18","window_to":"2026-09-16 10:15:18"} 
[2026-09-16 10:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 10:00:18","page":1} 
[2026-09-16 10:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 10:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 10:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 09:30:18","window_to":"2026-09-16 10:30:18"} 
[2026-09-16 10:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 10:15:19","page":1} 
[2026-09-16 10:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 10:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 10:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 09:45:15","window_to":"2026-09-16 10:45:16"} 
[2026-09-16 10:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 10:30:19","page":1} 
[2026-09-16 10:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 10:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 11:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 10:45:16","page":1} 
[2026-09-16 11:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 11:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 10:00:21","window_to":"2026-09-16 11:00:21"} 
[2026-09-16 11:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 11:00:35] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-16 10:00:35","window_to":"2026-09-16 11:00:35"} 
[2026-09-16 11:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 11:00:19","page":1} 
[2026-09-16 11:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 10:15:15","window_to":"2026-09-16 11:15:15"} 
[2026-09-16 11:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 11:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 11:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 11:15:15","page":1} 
[2026-09-16 11:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 10:30:17","window_to":"2026-09-16 11:30:17"} 
[2026-09-16 11:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 11:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 11:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 10:45:17","window_to":"2026-09-16 11:45:17"} 
[2026-09-16 11:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 11:30:17","page":1} 
[2026-09-16 11:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 11:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 12:00:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 11:00:21","window_to":"2026-09-16 12:00:21"} 
[2026-09-16 12:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 11:45:18","page":1} 
[2026-09-16 12:00:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 12:00:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 12:00:44] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-16 11:00:43","window_to":"2026-09-16 12:00:43"} 
[2026-09-16 12:00:49] local.INFO: Automated database backup created successfully: backup_2026_09_16_12_00_44.sql  
[2026-09-16 12:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 11:15:19","window_to":"2026-09-16 12:15:19"} 
[2026-09-16 12:15:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 12:00:22","page":1} 
[2026-09-16 12:15:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 12:15:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 12:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 11:30:19","window_to":"2026-09-16 12:30:19"} 
[2026-09-16 12:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 12:15:20","page":1} 
[2026-09-16 12:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 12:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 12:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 11:45:19","window_to":"2026-09-16 12:45:19"} 
[2026-09-16 12:45:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 12:30:19","page":1} 
[2026-09-16 12:45:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 12:45:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 13:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 12:00:21","window_to":"2026-09-16 13:00:21"} 
[2026-09-16 13:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 12:45:20","page":1} 
[2026-09-16 13:00:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 13:00:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 13:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-16 12:00:38","window_to":"2026-09-16 13:00:38"} 
[2026-09-16 13:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 12:15:15","window_to":"2026-09-16 13:15:15"} 
[2026-09-16 13:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 13:00:22","page":1} 
[2026-09-16 13:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 13:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 13:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 12:30:18","window_to":"2026-09-16 13:30:18"} 
[2026-09-16 13:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 13:15:16","page":1} 
[2026-09-16 13:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 13:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 13:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 12:45:19","window_to":"2026-09-16 13:45:19"} 
[2026-09-16 13:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 13:30:19","page":1} 
[2026-09-16 13:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 13:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 14:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 13:00:20","window_to":"2026-09-16 14:00:20"} 
[2026-09-16 14:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 13:45:19","page":1} 
[2026-09-16 14:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 14:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 14:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-16 13:00:34","window_to":"2026-09-16 14:00:34"} 
[2026-09-16 14:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 14:00:21","page":1} 
[2026-09-16 14:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 13:15:18","window_to":"2026-09-16 14:15:18"} 
[2026-09-16 14:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 14:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 14:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 13:30:20","window_to":"2026-09-16 14:30:20"} 
[2026-09-16 14:30:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 14:15:18","page":1} 
[2026-09-16 14:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 14:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 14:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 13:45:17","window_to":"2026-09-16 14:45:17"} 
[2026-09-16 14:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 14:30:20","page":1} 
[2026-09-16 14:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 14:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 15:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 14:00:18","window_to":"2026-09-16 15:00:18"} 
[2026-09-16 15:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 14:45:18","page":1} 
[2026-09-16 15:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 15:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 15:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-16 14:00:33","window_to":"2026-09-16 15:00:33"} 
[2026-09-16 15:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 14:15:14","window_to":"2026-09-16 15:15:15"} 
[2026-09-16 15:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 15:00:19","page":1} 
[2026-09-16 15:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 15:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 15:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 15:15:15","page":1} 
[2026-09-16 15:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 14:30:16","window_to":"2026-09-16 15:30:16"} 
[2026-09-16 15:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 15:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 15:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 15:30:16","page":1} 
[2026-09-16 15:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 14:45:17","window_to":"2026-09-16 15:45:18"} 
[2026-09-16 15:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 15:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 16:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 15:45:18","page":1} 
[2026-09-16 16:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 15:00:21","window_to":"2026-09-16 16:00:21"} 
[2026-09-16 16:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 16:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 16:00:37] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-16 15:00:37","window_to":"2026-09-16 16:00:37"} 
[2026-09-16 16:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 15:15:14","window_to":"2026-09-16 16:15:14"} 
[2026-09-16 16:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 16:00:21","page":1} 
[2026-09-16 16:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 16:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 16:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 15:30:17","window_to":"2026-09-16 16:30:17"} 
[2026-09-16 16:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 16:15:14","page":1} 
[2026-09-16 16:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 16:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 16:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 15:45:16","window_to":"2026-09-16 16:45:17"} 
[2026-09-16 16:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 16:30:17","page":1} 
[2026-09-16 16:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 16:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 17:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 16:00:19","window_to":"2026-09-16 17:00:19"} 
[2026-09-16 17:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 16:45:17","page":1} 
[2026-09-16 17:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 17:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 17:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-16 16:00:36","window_to":"2026-09-16 17:00:36"} 
[2026-09-16 17:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 17:00:20","page":1} 
[2026-09-16 17:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 16:15:17","window_to":"2026-09-16 17:15:17"} 
[2026-09-16 17:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 17:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 17:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 16:30:18","window_to":"2026-09-16 17:30:18"} 
[2026-09-16 17:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 17:15:17","page":1} 
[2026-09-16 17:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 17:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 17:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 16:45:16","window_to":"2026-09-16 17:45:16"} 
[2026-09-16 17:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 17:30:19","page":1} 
[2026-09-16 17:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 17:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 18:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 17:00:19","window_to":"2026-09-16 18:00:19"} 
[2026-09-16 18:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 17:45:17","page":1} 
[2026-09-16 18:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 18:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 18:00:35] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-16 17:00:35","window_to":"2026-09-16 18:00:35"} 
[2026-09-16 18:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 17:15:16","window_to":"2026-09-16 18:15:16"} 
[2026-09-16 18:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 18:00:20","page":1} 
[2026-09-16 18:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 18:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 18:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 18:15:16","page":1} 
[2026-09-16 18:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 17:30:17","window_to":"2026-09-16 18:30:17"} 
[2026-09-16 18:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 18:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 18:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 17:45:16","window_to":"2026-09-16 18:45:16"} 
[2026-09-16 18:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 18:30:17","page":1} 
[2026-09-16 18:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 18:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 19:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 18:45:17","page":1} 
[2026-09-16 19:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 18:00:19","window_to":"2026-09-16 19:00:19"} 
[2026-09-16 19:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 19:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 19:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-16 18:00:36","window_to":"2026-09-16 19:00:36"} 
[2026-09-16 19:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 19:00:18","page":1} 
[2026-09-16 19:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 18:15:17","window_to":"2026-09-16 19:15:17"} 
[2026-09-16 19:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 19:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 19:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 19:15:17","page":1} 
[2026-09-16 19:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 18:30:17","window_to":"2026-09-16 19:30:17"} 
[2026-09-16 19:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 19:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 19:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 18:45:15","window_to":"2026-09-16 19:45:15"} 
[2026-09-16 19:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 19:30:17","page":1} 
[2026-09-16 19:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 19:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 20:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 19:45:16","page":1} 
[2026-09-16 20:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 19:00:18","window_to":"2026-09-16 20:00:18"} 
[2026-09-16 20:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 20:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 20:00:32] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-16 19:00:32","window_to":"2026-09-16 20:00:32"} 
[2026-09-16 20:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 20:00:17","page":1} 
[2026-09-16 20:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 19:15:17","window_to":"2026-09-16 20:15:17"} 
[2026-09-16 20:15:26] local.ERROR: ❌ Exception while polling TikTok leads {"error":"cURL error 28: SSL connection timeout (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://business-api.tiktok.com/open_api/v1.3/page/leads/get/?filtering=%7B%22start_time%22%3A%222026-09-16%2020%3A00%3A17%22%7D&page=1&page_size=100"} 
[2026-09-16 20:15:27] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 20:30:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 19:30:20","window_to":"2026-09-16 20:30:21"} 
[2026-09-16 20:30:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 20:15:16","page":1} 
[2026-09-16 20:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 20:30:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 20:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 19:45:17","window_to":"2026-09-16 20:45:17"} 
[2026-09-16 20:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 20:30:21","page":1} 
[2026-09-16 20:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 20:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 21:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 20:45:18","page":1} 
[2026-09-16 21:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 20:00:21","window_to":"2026-09-16 21:00:21"} 
[2026-09-16 21:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 21:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 21:00:39] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-16 20:00:38","window_to":"2026-09-16 21:00:38"} 
[2026-09-16 21:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 20:15:17","window_to":"2026-09-16 21:15:17"} 
[2026-09-16 21:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 21:00:21","page":1} 
[2026-09-16 21:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 21:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 21:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 20:30:18","window_to":"2026-09-16 21:30:18"} 
[2026-09-16 21:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 21:15:17","page":1} 
[2026-09-16 21:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 21:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 21:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 20:45:14","window_to":"2026-09-16 21:45:14"} 
[2026-09-16 21:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 21:30:18","page":1} 
[2026-09-16 21:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 21:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 22:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 21:00:19","window_to":"2026-09-16 22:00:19"} 
[2026-09-16 22:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 21:45:15","page":1} 
[2026-09-16 22:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 22:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 22:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-16 21:00:34","window_to":"2026-09-16 22:00:34"} 
[2026-09-16 22:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 21:15:16","window_to":"2026-09-16 22:15:16"} 
[2026-09-16 22:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 22:00:20","page":1} 
[2026-09-16 22:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 22:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 22:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 22:15:17","page":1} 
[2026-09-16 22:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 21:30:19","window_to":"2026-09-16 22:30:19"} 
[2026-09-16 22:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 22:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 22:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 22:30:19","page":1} 
[2026-09-16 22:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 21:45:16","window_to":"2026-09-16 22:45:17"} 
[2026-09-16 22:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 22:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 23:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 22:00:18","window_to":"2026-09-16 23:00:18"} 
[2026-09-16 23:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 22:45:17","page":1} 
[2026-09-16 23:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 23:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 23:00:33] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-16 22:00:33","window_to":"2026-09-16 23:00:33"} 
[2026-09-16 23:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 22:15:15","window_to":"2026-09-16 23:15:15"} 
[2026-09-16 23:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 23:00:18","page":1} 
[2026-09-16 23:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 23:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 23:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 22:30:20","window_to":"2026-09-16 23:30:20"} 
[2026-09-16 23:30:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 23:15:15","page":1} 
[2026-09-16 23:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 23:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 23:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 23:30:21","page":1} 
[2026-09-16 23:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-16 23:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-16 23:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 22:45:18","window_to":"2026-09-16 23:45:18"} 
[2026-09-17 00:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 23:00:17","window_to":"2026-09-17 00:00:17"} 
[2026-09-17 00:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-16 23:45:17","page":1} 
[2026-09-17 00:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 00:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 00:00:38] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_17_00_00_38.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-17 00:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-16 23:00:38","window_to":"2026-09-17 00:00:38"} 
[2026-09-17 00:00:39] local.INFO: Student payment status check queued {"batches":1,"students":1} 
[2026-09-17 00:00:43] local.INFO: Student payment status cron evaluated {"student_id":5,"admission_no":"26/000001","outstanding_amount":24000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-17 00:00:46] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_17_00_00_38.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-17 00:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 00:00:18","page":1} 
[2026-09-17 00:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 23:15:16","window_to":"2026-09-17 00:15:17"} 
[2026-09-17 00:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 00:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 00:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 00:15:16","page":1} 
[2026-09-17 00:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 23:30:17","window_to":"2026-09-17 00:30:17"} 
[2026-09-17 00:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 00:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 00:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-16 23:45:16","window_to":"2026-09-17 00:45:16"} 
[2026-09-17 00:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 00:30:17","page":1} 
[2026-09-17 00:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 00:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 01:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 00:00:19","window_to":"2026-09-17 01:00:19"} 
[2026-09-17 01:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 00:45:18","page":1} 
[2026-09-17 01:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 01:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 01:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-17 00:00:37","window_to":"2026-09-17 01:00:37"} 
[2026-09-17 01:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 00:15:16","window_to":"2026-09-17 01:15:16"} 
[2026-09-17 01:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 01:00:20","page":1} 
[2026-09-17 01:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 01:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 01:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 01:15:17","page":1} 
[2026-09-17 01:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 00:30:18","window_to":"2026-09-17 01:30:18"} 
[2026-09-17 01:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 01:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 01:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 01:30:18","page":1} 
[2026-09-17 01:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 00:45:17","window_to":"2026-09-17 01:45:17"} 
[2026-09-17 01:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 01:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 02:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 01:45:17","page":1} 
[2026-09-17 02:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 01:00:17","window_to":"2026-09-17 02:00:18"} 
[2026-09-17 02:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 02:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 02:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-17 01:00:34","window_to":"2026-09-17 02:00:34"} 
[2026-09-17 02:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 02:00:17","page":1} 
[2026-09-17 02:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 01:15:16","window_to":"2026-09-17 02:15:16"} 
[2026-09-17 02:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 02:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 02:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 02:15:15","page":1} 
[2026-09-17 02:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 01:30:17","window_to":"2026-09-17 02:30:17"} 
[2026-09-17 02:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 02:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 02:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 01:45:16","window_to":"2026-09-17 02:45:16"} 
[2026-09-17 02:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 02:30:16","page":1} 
[2026-09-17 02:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 02:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 03:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 02:45:17","page":1} 
[2026-09-17 03:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 02:00:18","window_to":"2026-09-17 03:00:18"} 
[2026-09-17 03:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 03:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 03:00:32] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-17 02:00:32","window_to":"2026-09-17 03:00:32"} 
[2026-09-17 03:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 03:00:18","page":1} 
[2026-09-17 03:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 02:15:15","window_to":"2026-09-17 03:15:15"} 
[2026-09-17 03:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 03:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 03:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 02:30:17","window_to":"2026-09-17 03:30:17"} 
[2026-09-17 03:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 03:15:15","page":1} 
[2026-09-17 03:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 03:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 03:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 03:30:17","page":1} 
[2026-09-17 03:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 02:45:16","window_to":"2026-09-17 03:45:16"} 
[2026-09-17 03:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 03:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 04:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 03:45:16","page":1} 
[2026-09-17 04:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 03:00:17","window_to":"2026-09-17 04:00:17"} 
[2026-09-17 04:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 04:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 04:00:32] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-17 03:00:32","window_to":"2026-09-17 04:00:32"} 
[2026-09-17 04:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 04:00:17","page":1} 
[2026-09-17 04:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 03:15:13","window_to":"2026-09-17 04:15:13"} 
[2026-09-17 04:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 04:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 04:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 04:15:13","page":1} 
[2026-09-17 04:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 03:30:15","window_to":"2026-09-17 04:30:15"} 
[2026-09-17 04:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 04:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 04:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 04:30:15","page":1} 
[2026-09-17 04:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 03:45:14","window_to":"2026-09-17 04:45:14"} 
[2026-09-17 04:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 04:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 05:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 04:45:14","page":1} 
[2026-09-17 05:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 04:00:17","window_to":"2026-09-17 05:00:18"} 
[2026-09-17 05:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 05:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 05:00:32] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-17 04:00:32","window_to":"2026-09-17 05:00:32"} 
[2026-09-17 05:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 05:00:18","page":1} 
[2026-09-17 05:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 04:15:14","window_to":"2026-09-17 05:15:14"} 
[2026-09-17 05:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 05:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 05:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 05:15:14","page":1} 
[2026-09-17 05:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 04:30:16","window_to":"2026-09-17 05:30:17"} 
[2026-09-17 05:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 05:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 05:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 04:45:14","window_to":"2026-09-17 05:45:14"} 
[2026-09-17 05:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 05:30:17","page":1} 
[2026-09-17 05:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 05:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 06:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 05:45:14","page":1} 
[2026-09-17 06:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 05:00:17","window_to":"2026-09-17 06:00:17"} 
[2026-09-17 06:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 06:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 06:00:31] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-17 05:00:31","window_to":"2026-09-17 06:00:31"} 
[2026-09-17 06:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 06:00:16","page":1} 
[2026-09-17 06:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 06:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 06:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 05:15:16","window_to":"2026-09-17 06:15:16"} 
[2026-09-17 06:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 06:15:14","page":1} 
[2026-09-17 06:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 05:30:16","window_to":"2026-09-17 06:30:16"} 
[2026-09-17 06:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 06:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 06:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 06:30:16","page":1} 
[2026-09-17 06:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 05:45:15","window_to":"2026-09-17 06:45:16"} 
[2026-09-17 06:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 06:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 07:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 06:45:16","page":1} 
[2026-09-17 07:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 06:00:17","window_to":"2026-09-17 07:00:17"} 
[2026-09-17 07:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 07:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 07:00:32] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-17 06:00:32","window_to":"2026-09-17 07:00:32"} 
[2026-09-17 07:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 06:15:15","window_to":"2026-09-17 07:15:15"} 
[2026-09-17 07:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 07:00:17","page":1} 
[2026-09-17 07:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 07:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 07:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 07:15:15","page":1} 
[2026-09-17 07:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 06:30:17","window_to":"2026-09-17 07:30:17"} 
[2026-09-17 07:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 07:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 07:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 07:30:17","page":1} 
[2026-09-17 07:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 06:45:14","window_to":"2026-09-17 07:45:14"} 
[2026-09-17 07:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 07:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 08:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 07:45:14","page":1} 
[2026-09-17 08:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 07:00:18","window_to":"2026-09-17 08:00:19"} 
[2026-09-17 08:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 08:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 08:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-17 07:00:34","window_to":"2026-09-17 08:00:34"} 
[2026-09-17 08:00:35] local.INFO: Payment reminders queued {"batches":1,"students":1} 
[2026-09-17 08:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 07:15:15","window_to":"2026-09-17 08:15:15"} 
[2026-09-17 08:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 08:00:18","page":1} 
[2026-09-17 08:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 08:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 08:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 08:15:16","page":1} 
[2026-09-17 08:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 07:30:20","window_to":"2026-09-17 08:30:20"} 
[2026-09-17 08:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 08:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 08:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 08:30:20","page":1} 
[2026-09-17 08:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 07:45:17","window_to":"2026-09-17 08:45:17"} 
[2026-09-17 08:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 08:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 09:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 08:00:17","window_to":"2026-09-17 09:00:18"} 
[2026-09-17 09:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 08:45:17","page":1} 
[2026-09-17 09:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 09:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 09:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-17 08:00:34","window_to":"2026-09-17 09:00:34"} 
[2026-09-17 09:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 09:00:19","page":1} 
[2026-09-17 09:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 08:15:15","window_to":"2026-09-17 09:15:15"} 
[2026-09-17 09:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 09:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 09:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 09:15:15","page":1} 
[2026-09-17 09:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 08:30:18","window_to":"2026-09-17 09:30:18"} 
[2026-09-17 09:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 09:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 09:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 08:45:16","window_to":"2026-09-17 09:45:16"} 
[2026-09-17 09:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 09:30:18","page":1} 
[2026-09-17 09:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 09:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 10:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 09:00:18","window_to":"2026-09-17 10:00:18"} 
[2026-09-17 10:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 09:45:17","page":1} 
[2026-09-17 10:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 10:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 10:00:37] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-17 09:00:37","window_to":"2026-09-17 10:00:37"} 
[2026-09-17 10:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 09:15:16","window_to":"2026-09-17 10:15:16"} 
[2026-09-17 10:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 10:00:20","page":1} 
[2026-09-17 10:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 10:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 10:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 10:15:17","page":1} 
[2026-09-17 10:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 09:30:17","window_to":"2026-09-17 10:30:17"} 
[2026-09-17 10:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 10:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 10:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 10:30:17","page":1} 
[2026-09-17 10:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 09:45:17","window_to":"2026-09-17 10:45:17"} 
[2026-09-17 10:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 10:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 11:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 10:00:19","window_to":"2026-09-17 11:00:19"} 
[2026-09-17 11:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 10:45:16","page":1} 
[2026-09-17 11:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 11:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 11:00:35] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-17 10:00:35","window_to":"2026-09-17 11:00:35"} 
[2026-09-17 11:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 10:15:14","window_to":"2026-09-17 11:15:14"} 
[2026-09-17 11:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 11:00:19","page":1} 
[2026-09-17 11:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 11:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 11:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 11:15:15","page":1} 
[2026-09-17 11:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 10:30:19","window_to":"2026-09-17 11:30:19"} 
[2026-09-17 11:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 11:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 11:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 11:30:19","page":1} 
[2026-09-17 11:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 10:45:17","window_to":"2026-09-17 11:45:17"} 
[2026-09-17 11:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 11:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 12:00:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 11:00:22","window_to":"2026-09-17 12:00:22"} 
[2026-09-17 12:00:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 11:45:17","page":1} 
[2026-09-17 12:00:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 12:00:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 12:00:43] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-17 11:00:43","window_to":"2026-09-17 12:00:43"} 
[2026-09-17 12:00:44] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_17_12_00_44.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-17 12:00:50] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_17_12_00_44.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-17 12:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 11:15:16","window_to":"2026-09-17 12:15:16"} 
[2026-09-17 12:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 12:00:23","page":1} 
[2026-09-17 12:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 12:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 12:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 12:15:17","page":1} 
[2026-09-17 12:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 11:30:18","window_to":"2026-09-17 12:30:18"} 
[2026-09-17 12:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 12:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 12:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 11:45:15","window_to":"2026-09-17 12:45:16"} 
[2026-09-17 12:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 12:30:18","page":1} 
[2026-09-17 12:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 12:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 13:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 12:45:16","page":1} 
[2026-09-17 13:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 12:00:20","window_to":"2026-09-17 13:00:20"} 
[2026-09-17 13:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 13:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 13:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-17 12:00:38","window_to":"2026-09-17 13:00:38"} 
[2026-09-17 13:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 13:00:20","page":1} 
[2026-09-17 13:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 12:15:17","window_to":"2026-09-17 13:15:17"} 
[2026-09-17 13:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 13:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 13:30:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 13:15:17","page":1} 
[2026-09-17 13:30:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 12:30:21","window_to":"2026-09-17 13:30:21"} 
[2026-09-17 13:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 13:30:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 13:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 13:30:21","page":1} 
[2026-09-17 13:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 12:45:19","window_to":"2026-09-17 13:45:19"} 
[2026-09-17 13:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 13:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 14:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 13:00:20","window_to":"2026-09-17 14:00:20"} 
[2026-09-17 14:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 13:45:19","page":1} 
[2026-09-17 14:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 14:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 14:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-17 13:00:38","window_to":"2026-09-17 14:00:38"} 
[2026-09-17 14:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 14:00:20","page":1} 
[2026-09-17 14:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 13:15:17","window_to":"2026-09-17 14:15:17"} 
[2026-09-17 14:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 14:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 14:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 13:30:20","window_to":"2026-09-17 14:30:20"} 
[2026-09-17 14:30:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 14:15:17","page":1} 
[2026-09-17 14:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 14:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 14:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 13:45:17","window_to":"2026-09-17 14:45:17"} 
[2026-09-17 14:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 14:30:21","page":1} 
[2026-09-17 14:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 14:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 15:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 14:45:17","page":1} 
[2026-09-17 15:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 14:00:18","window_to":"2026-09-17 15:00:18"} 
[2026-09-17 15:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 15:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 15:00:35] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-17 14:00:35","window_to":"2026-09-17 15:00:35"} 
[2026-09-17 15:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 15:00:19","page":1} 
[2026-09-17 15:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 14:15:16","window_to":"2026-09-17 15:15:16"} 
[2026-09-17 15:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 15:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 15:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 15:15:17","page":1} 
[2026-09-17 15:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 14:30:19","window_to":"2026-09-17 15:30:19"} 
[2026-09-17 15:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 15:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 15:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 14:45:16","window_to":"2026-09-17 15:45:17"} 
[2026-09-17 15:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 15:30:19","page":1} 
[2026-09-17 15:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 15:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 16:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 15:45:18","page":1} 
[2026-09-17 16:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 15:00:19","window_to":"2026-09-17 16:00:19"} 
[2026-09-17 16:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 16:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 16:00:35] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-17 15:00:35","window_to":"2026-09-17 16:00:35"} 
[2026-09-17 16:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 15:15:16","window_to":"2026-09-17 16:15:16"} 
[2026-09-17 16:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 16:00:19","page":1} 
[2026-09-17 16:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 16:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 16:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 15:30:17","window_to":"2026-09-17 16:30:17"} 
[2026-09-17 16:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 16:15:17","page":1} 
[2026-09-17 16:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 16:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 16:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 16:30:18","page":1} 
[2026-09-17 16:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 15:45:17","window_to":"2026-09-17 16:45:17"} 
[2026-09-17 16:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 16:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 17:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 16:00:18","window_to":"2026-09-17 17:00:18"} 
[2026-09-17 17:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 16:45:17","page":1} 
[2026-09-17 17:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 17:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 17:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-17 16:00:36","window_to":"2026-09-17 17:00:36"} 
[2026-09-17 17:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 16:15:16","window_to":"2026-09-17 17:15:16"} 
[2026-09-17 17:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 17:00:20","page":1} 
[2026-09-17 17:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 17:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 17:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 16:30:18","window_to":"2026-09-17 17:30:19"} 
[2026-09-17 17:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 17:15:17","page":1} 
[2026-09-17 17:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 17:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 17:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 17:30:19","page":1} 
[2026-09-17 17:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 16:45:18","window_to":"2026-09-17 17:45:19"} 
[2026-09-17 17:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 17:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 18:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 17:45:19","page":1} 
[2026-09-17 18:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 17:00:19","window_to":"2026-09-17 18:00:20"} 
[2026-09-17 18:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 18:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 18:00:37] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-17 17:00:37","window_to":"2026-09-17 18:00:37"} 
[2026-09-17 18:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 17:15:15","window_to":"2026-09-17 18:15:15"} 
[2026-09-17 18:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 18:00:19","page":1} 
[2026-09-17 18:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 18:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 18:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 17:30:18","window_to":"2026-09-17 18:30:18"} 
[2026-09-17 18:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 18:15:16","page":1} 
[2026-09-17 18:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 18:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 18:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 17:45:16","window_to":"2026-09-17 18:45:16"} 
[2026-09-17 18:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 18:30:18","page":1} 
[2026-09-17 18:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 18:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 19:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 18:45:16","page":1} 
[2026-09-17 19:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 18:00:19","window_to":"2026-09-17 19:00:19"} 
[2026-09-17 19:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 19:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 19:00:35] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-17 18:00:35","window_to":"2026-09-17 19:00:35"} 
[2026-09-17 19:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 18:15:16","window_to":"2026-09-17 19:15:16"} 
[2026-09-17 19:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 19:00:19","page":1} 
[2026-09-17 19:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 19:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 19:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 19:15:16","page":1} 
[2026-09-17 19:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 18:30:18","window_to":"2026-09-17 19:30:18"} 
[2026-09-17 19:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 19:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 19:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 19:30:18","page":1} 
[2026-09-17 19:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 19:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 19:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 18:45:17","window_to":"2026-09-17 19:45:17"} 
[2026-09-17 20:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 19:00:17","window_to":"2026-09-17 20:00:17"} 
[2026-09-17 20:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 19:45:15","page":1} 
[2026-09-17 20:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 20:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 20:00:32] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-17 19:00:31","window_to":"2026-09-17 20:00:31"} 
[2026-09-17 20:11:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:11:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:11:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:12:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:12:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:12:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:12:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:13:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:13:55] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:14:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:14:55] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 19:15:14","window_to":"2026-09-17 20:15:14"} 
[2026-09-17 20:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 20:00:17","page":1} 
[2026-09-17 20:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 20:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 20:15:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:15:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:16:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:16:55] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:17:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:17:55] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:18:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:18:55] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:19:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:20:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:20:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:21:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:22:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:22:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:23:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:24:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:24:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:25:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:26:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:26:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:27:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:28:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:28:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:29:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 19:30:18","window_to":"2026-09-17 20:30:18"} 
[2026-09-17 20:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 20:15:15","page":1} 
[2026-09-17 20:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 20:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 20:30:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:30:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:31:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:32:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:32:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:33:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:34:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:34:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:35:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:36:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:36:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:37:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 20:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 19:45:16","window_to":"2026-09-17 20:45:16"} 
[2026-09-17 20:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 20:30:18","page":1} 
[2026-09-17 20:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 20:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 21:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 20:45:16","page":1} 
[2026-09-17 21:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 20:00:18","window_to":"2026-09-17 21:00:19"} 
[2026-09-17 21:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 21:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 21:00:32] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-17 20:00:32","window_to":"2026-09-17 21:00:32"} 
[2026-09-17 21:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 21:00:18","page":1} 
[2026-09-17 21:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 20:15:16","window_to":"2026-09-17 21:15:16"} 
[2026-09-17 21:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 21:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 21:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 21:15:15","page":1} 
[2026-09-17 21:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 20:30:18","window_to":"2026-09-17 21:30:18"} 
[2026-09-17 21:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 21:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 21:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 20:45:15","window_to":"2026-09-17 21:45:15"} 
[2026-09-17 21:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 21:30:18","page":1} 
[2026-09-17 21:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 21:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 21:47:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 21:58:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 21:58:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 21:58:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 21:59:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 21:59:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 21:00:18","window_to":"2026-09-17 22:00:18"} 
[2026-09-17 22:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 21:45:16","page":1} 
[2026-09-17 22:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 22:00:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 22:00:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-17 21:00:33","window_to":"2026-09-17 22:00:33"} 
[2026-09-17 22:00:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:01:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:01:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:01:22] local.ERROR: Gmail API error: Gmail API settings not configured  
[2026-09-17 22:01:22] local.WARNING: Gmail failed for staff credentials email, trying Zepto Mail {"gmail_error":"Gmail API settings not configured"} 
[2026-09-17 22:01:22] local.ERROR: ZeptoMailer error: Zepto Mail API key or admin email not configured  
[2026-09-17 22:01:22] local.WARNING: Failed to send staff credentials email {"staff_id":6,"error":"Zepto Mail API key or admin email not configured"} 
[2026-09-17 22:01:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:01:23] local.INFO: No FCM tokens found for user {"notification_id":32,"user_id":2} 
[2026-09-17 22:01:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:01:23] local.INFO: No FCM tokens found for user {"notification_id":33,"user_id":1} 
[2026-09-17 22:01:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:01:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:02:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:02:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:02:59] local.ERROR: Gmail API error: Gmail API settings not configured  
[2026-09-17 22:02:59] local.WARNING: Gmail failed for staff credentials email, trying Zepto Mail {"gmail_error":"Gmail API settings not configured"} 
[2026-09-17 22:02:59] local.ERROR: ZeptoMailer error: Zepto Mail API key or admin email not configured  
[2026-09-17 22:02:59] local.WARNING: Failed to send staff credentials email {"staff_id":7,"error":"Zepto Mail API key or admin email not configured"} 
[2026-09-17 22:02:59] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:02:59] local.INFO: No FCM tokens found for user {"notification_id":34,"user_id":2} 
[2026-09-17 22:02:59] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:02:59] local.INFO: No FCM tokens found for user {"notification_id":35,"user_id":1} 
[2026-09-17 22:03:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:03:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:04:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:04:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:04:35] local.ERROR: Gmail API error: Gmail API settings not configured  
[2026-09-17 22:04:35] local.WARNING: Gmail failed for staff credentials email, trying Zepto Mail {"gmail_error":"Gmail API settings not configured"} 
[2026-09-17 22:04:35] local.ERROR: ZeptoMailer error: Zepto Mail API key or admin email not configured  
[2026-09-17 22:04:35] local.WARNING: Failed to send staff credentials email {"staff_id":8,"error":"Zepto Mail API key or admin email not configured"} 
[2026-09-17 22:04:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:04:36] local.INFO: No FCM tokens found for user {"notification_id":36,"user_id":2} 
[2026-09-17 22:04:36] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:04:36] local.INFO: No FCM tokens found for user {"notification_id":37,"user_id":1} 
[2026-09-17 22:04:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:04:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:05:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:05:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:05:45] local.ERROR: Gmail API error: Gmail API settings not configured  
[2026-09-17 22:05:45] local.WARNING: Gmail failed for staff credentials email, trying Zepto Mail {"gmail_error":"Gmail API settings not configured"} 
[2026-09-17 22:05:45] local.ERROR: ZeptoMailer error: Zepto Mail API key or admin email not configured  
[2026-09-17 22:05:45] local.WARNING: Failed to send staff credentials email {"staff_id":9,"error":"Zepto Mail API key or admin email not configured"} 
[2026-09-17 22:05:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:05:48] local.INFO: No FCM tokens found for user {"notification_id":38,"user_id":2} 
[2026-09-17 22:05:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:05:48] local.INFO: No FCM tokens found for user {"notification_id":39,"user_id":1} 
[2026-09-17 22:05:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:05:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:06:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:06:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:07:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:07:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:07:37] local.ERROR: Gmail API error: Gmail API settings not configured  
[2026-09-17 22:07:37] local.WARNING: Gmail failed for staff credentials email, trying Zepto Mail {"gmail_error":"Gmail API settings not configured"} 
[2026-09-17 22:07:37] local.ERROR: ZeptoMailer error: Zepto Mail API key or admin email not configured  
[2026-09-17 22:07:37] local.WARNING: Failed to send staff credentials email {"staff_id":10,"error":"Zepto Mail API key or admin email not configured"} 
[2026-09-17 22:07:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:07:39] local.INFO: No FCM tokens found for user {"notification_id":40,"user_id":2} 
[2026-09-17 22:07:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:07:39] local.INFO: No FCM tokens found for user {"notification_id":41,"user_id":1} 
[2026-09-17 22:07:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:07:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:08:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:08:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:08:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:09:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:09:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:10:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:10:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:10:23] local.ERROR: Gmail API error: Gmail API settings not configured  
[2026-09-17 22:10:23] local.WARNING: Gmail failed for staff credentials email, trying Zepto Mail {"gmail_error":"Gmail API settings not configured"} 
[2026-09-17 22:10:23] local.ERROR: ZeptoMailer error: Zepto Mail API key or admin email not configured  
[2026-09-17 22:10:23] local.WARNING: Failed to send staff credentials email {"staff_id":11,"error":"Zepto Mail API key or admin email not configured"} 
[2026-09-17 22:10:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:10:24] local.INFO: No FCM tokens found for user {"notification_id":42,"user_id":2} 
[2026-09-17 22:10:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:10:24] local.INFO: No FCM tokens found for user {"notification_id":43,"user_id":1} 
[2026-09-17 22:10:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:10:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:11:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:11:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:12:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:12:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:12:27] local.ERROR: Gmail API error: Gmail API settings not configured  
[2026-09-17 22:12:27] local.WARNING: Gmail failed for staff credentials email, trying Zepto Mail {"gmail_error":"Gmail API settings not configured"} 
[2026-09-17 22:12:27] local.ERROR: ZeptoMailer error: Zepto Mail API key or admin email not configured  
[2026-09-17 22:12:27] local.WARNING: Failed to send staff credentials email {"staff_id":12,"error":"Zepto Mail API key or admin email not configured"} 
[2026-09-17 22:12:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:12:27] local.INFO: No FCM tokens found for user {"notification_id":44,"user_id":2} 
[2026-09-17 22:12:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:12:27] local.INFO: No FCM tokens found for user {"notification_id":45,"user_id":1} 
[2026-09-17 22:12:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:12:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:13:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:13:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:14:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:14:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:14:45] local.ERROR: Gmail API error: Gmail API settings not configured  
[2026-09-17 22:14:45] local.WARNING: Gmail failed for staff credentials email, trying Zepto Mail {"gmail_error":"Gmail API settings not configured"} 
[2026-09-17 22:14:45] local.ERROR: ZeptoMailer error: Zepto Mail API key or admin email not configured  
[2026-09-17 22:14:45] local.WARNING: Failed to send staff credentials email {"staff_id":13,"error":"Zepto Mail API key or admin email not configured"} 
[2026-09-17 22:14:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:14:46] local.INFO: No FCM tokens found for user {"notification_id":46,"user_id":2} 
[2026-09-17 22:14:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:14:46] local.INFO: No FCM tokens found for user {"notification_id":47,"user_id":1} 
[2026-09-17 22:14:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:14:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 22:00:20","page":1} 
[2026-09-17 22:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 21:15:15","window_to":"2026-09-17 22:15:15"} 
[2026-09-17 22:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 22:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 22:15:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:15:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:15:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:16:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:16:16] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/roles","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.roles.view"],"permission_ids":[757]} 
[2026-09-17 22:16:16] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:16:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:16:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:16:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:16:28] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:16:28] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/roles","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.roles.view"],"permission_ids":[757]} 
[2026-09-17 22:16:29] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:16:29] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/system","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-17 22:16:29] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/adms","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-17 22:16:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:16:57] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:17:16] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:17:16] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/adms","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-17 22:17:16] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/settings/group/system","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.settings.view_single","user_management.settings.view_group"],"permission_ids":[720,721]} 
[2026-09-17 22:17:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:17:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:17:27] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:17:28] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:17:32] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:17:57] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:18:13] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:18:20] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:18:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:18:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:18:27] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:18:28] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:18:35] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:18:37] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:18:47] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:18:51] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:18:57] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:19:17] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:19:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:19:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:19:27] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:19:28] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:19:45] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:19:57] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:19:57] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:20:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:20:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:20:24] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:20:27] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:20:28] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:20:57] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:21:10] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:21:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:21:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:21:27] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:21:28] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:21:57] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:22:05] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:22:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:22:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:22:27] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:22:28] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:22:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:22:55] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:22:57] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:23:02] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:23:05] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:23:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:23:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:23:27] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:23:28] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:23:57] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:24:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:24:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:24:27] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:24:28] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:24:57] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:25:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:25:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:25:28] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:25:28] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:25:57] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:26:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:26:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:26:27] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:26:28] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:26:57] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:27:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:27:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:27:27] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:27:28] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:27:57] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:28:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:28:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:28:28] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:28:28] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:28:58] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:29:51] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:29:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:29:52] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:29:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 22:15:15","page":1} 
[2026-09-17 22:30:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 21:30:20","window_to":"2026-09-17 22:30:20"} 
[2026-09-17 22:30:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 22:30:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 22:30:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:30:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:30:52] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:30:52] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:31:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:31:52] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:31:52] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:31:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:32:52] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:32:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:32:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:32:52] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:33:51] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:33:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:33:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:33:52] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:34:51] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:34:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:34:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:34:52] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:35:52] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:35:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:35:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:35:52] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:36:51] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:36:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:36:52] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:36:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:37:51] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:37:52] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:37:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:37:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 21:45:15","window_to":"2026-09-17 22:45:15"} 
[2026-09-17 22:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 22:30:20","page":1} 
[2026-09-17 22:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 22:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 22:53:43] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:53:43] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.view"],"permission_ids":[725]} 
[2026-09-17 22:53:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:53:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:53:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:53:55] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:53:58] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/notifications/count","user_id":12,"user_reg_no":"STF001004","permissions":["user_management.notifications.count"],"permission_ids":[727]} 
[2026-09-17 22:54:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 22:54:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-17 23:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 22:45:16","page":1} 
[2026-09-17 23:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 22:00:19","window_to":"2026-09-17 23:00:19"} 
[2026-09-17 23:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 23:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 23:00:35] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-17 22:00:35","window_to":"2026-09-17 23:00:35"} 
[2026-09-17 23:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 22:15:16","window_to":"2026-09-17 23:15:16"} 
[2026-09-17 23:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 23:00:19","page":1} 
[2026-09-17 23:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 23:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 23:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 22:30:17","window_to":"2026-09-17 23:30:17"} 
[2026-09-17 23:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 23:15:16","page":1} 
[2026-09-17 23:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 23:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-17 23:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 23:30:18","page":1} 
[2026-09-17 23:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 22:45:16","window_to":"2026-09-17 23:45:16"} 
[2026-09-17 23:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-17 23:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 00:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-17 23:45:16","page":1} 
[2026-09-18 00:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 23:00:20","window_to":"2026-09-18 00:00:20"} 
[2026-09-18 00:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 00:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 00:00:39] local.INFO: Student payment status check queued {"batches":1,"students":1} 
[2026-09-18 00:00:40] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-17 23:00:40","window_to":"2026-09-18 00:00:40"} 
[2026-09-18 00:00:40] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_18_00_00_40.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-18 00:00:41] local.INFO: Student payment status cron evaluated {"student_id":5,"admission_no":"26/000001","outstanding_amount":24000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-18 00:00:48] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_18_00_00_40.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-18 00:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 00:00:19","page":1} 
[2026-09-18 00:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 23:15:16","window_to":"2026-09-18 00:15:16"} 
[2026-09-18 00:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 00:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 00:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 00:15:16","page":1} 
[2026-09-18 00:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 23:30:17","window_to":"2026-09-18 00:30:17"} 
[2026-09-18 00:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 00:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 00:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 00:30:17","page":1} 
[2026-09-18 00:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-17 23:45:17","window_to":"2026-09-18 00:45:17"} 
[2026-09-18 00:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 00:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 01:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 00:45:17","page":1} 
[2026-09-18 01:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 00:00:18","window_to":"2026-09-18 01:00:18"} 
[2026-09-18 01:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 01:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 01:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-18 00:00:35","window_to":"2026-09-18 01:00:36"} 
[2026-09-18 01:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 01:00:18","page":1} 
[2026-09-18 01:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 00:15:15","window_to":"2026-09-18 01:15:15"} 
[2026-09-18 01:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 01:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 01:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 00:30:16","window_to":"2026-09-18 01:30:16"} 
[2026-09-18 01:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 01:15:15","page":1} 
[2026-09-18 01:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 01:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 01:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 01:30:16","page":1} 
[2026-09-18 01:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 00:45:15","window_to":"2026-09-18 01:45:15"} 
[2026-09-18 01:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 01:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 02:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 01:45:15","page":1} 
[2026-09-18 02:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 01:00:16","window_to":"2026-09-18 02:00:16"} 
[2026-09-18 02:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 02:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 02:00:32] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-18 01:00:32","window_to":"2026-09-18 02:00:32"} 
[2026-09-18 02:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 01:15:14","window_to":"2026-09-18 02:15:14"} 
[2026-09-18 02:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 02:00:16","page":1} 
[2026-09-18 02:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 02:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 02:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 02:15:14","page":1} 
[2026-09-18 02:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 02:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 01:30:16","window_to":"2026-09-18 02:30:16"} 
[2026-09-18 02:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 02:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 01:45:15","window_to":"2026-09-18 02:45:15"} 
[2026-09-18 02:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 02:30:15","page":1} 
[2026-09-18 02:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 02:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 03:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 02:00:16","window_to":"2026-09-18 03:00:16"} 
[2026-09-18 03:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 02:45:16","page":1} 
[2026-09-18 03:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 03:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 03:00:30] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-18 02:00:30","window_to":"2026-09-18 03:00:30"} 
[2026-09-18 03:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 02:15:13","window_to":"2026-09-18 03:15:14"} 
[2026-09-18 03:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 03:00:16","page":1} 
[2026-09-18 03:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 03:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 03:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 02:30:15","window_to":"2026-09-18 03:30:15"} 
[2026-09-18 03:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 03:15:14","page":1} 
[2026-09-18 03:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 03:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 03:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 03:30:16","page":1} 
[2026-09-18 03:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 02:45:15","window_to":"2026-09-18 03:45:15"} 
[2026-09-18 03:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 03:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 04:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 03:45:14","page":1} 
[2026-09-18 04:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 03:00:17","window_to":"2026-09-18 04:00:17"} 
[2026-09-18 04:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 04:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 04:00:31] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-18 03:00:31","window_to":"2026-09-18 04:00:31"} 
[2026-09-18 04:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 04:00:17","page":1} 
[2026-09-18 04:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 03:15:14","window_to":"2026-09-18 04:15:14"} 
[2026-09-18 04:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 04:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 04:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 03:30:16","window_to":"2026-09-18 04:30:16"} 
[2026-09-18 04:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 04:15:14","page":1} 
[2026-09-18 04:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 04:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 04:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 04:30:16","page":1} 
[2026-09-18 04:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 03:45:15","window_to":"2026-09-18 04:45:15"} 
[2026-09-18 04:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 04:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 05:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 04:00:17","window_to":"2026-09-18 05:00:18"} 
[2026-09-18 05:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 04:45:15","page":1} 
[2026-09-18 05:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 05:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 05:00:33] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-18 04:00:32","window_to":"2026-09-18 05:00:32"} 
[2026-09-18 05:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 05:00:18","page":1} 
[2026-09-18 05:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 04:15:13","window_to":"2026-09-18 05:15:13"} 
[2026-09-18 05:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 05:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 05:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 04:30:18","window_to":"2026-09-18 05:30:18"} 
[2026-09-18 05:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 05:15:13","page":1} 
[2026-09-18 05:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 05:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 05:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 05:30:19","page":1} 
[2026-09-18 05:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 04:45:14","window_to":"2026-09-18 05:45:15"} 
[2026-09-18 05:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 05:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 06:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 05:45:14","page":1} 
[2026-09-18 06:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 05:00:18","window_to":"2026-09-18 06:00:18"} 
[2026-09-18 06:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 06:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 06:00:33] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-18 05:00:33","window_to":"2026-09-18 06:00:33"} 
[2026-09-18 06:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 05:15:14","window_to":"2026-09-18 06:15:14"} 
[2026-09-18 06:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 06:00:18","page":1} 
[2026-09-18 06:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 06:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 06:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 06:15:15","page":1} 
[2026-09-18 06:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 05:30:18","window_to":"2026-09-18 06:30:18"} 
[2026-09-18 06:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 06:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 06:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 05:45:14","window_to":"2026-09-18 06:45:14"} 
[2026-09-18 06:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 06:30:18","page":1} 
[2026-09-18 06:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 06:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 07:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 06:45:14","page":1} 
[2026-09-18 07:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 06:00:17","window_to":"2026-09-18 07:00:18"} 
[2026-09-18 07:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 07:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 07:00:31] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-18 06:00:31","window_to":"2026-09-18 07:00:31"} 
[2026-09-18 07:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 07:00:17","page":1} 
[2026-09-18 07:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 06:15:14","window_to":"2026-09-18 07:15:14"} 
[2026-09-18 07:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 07:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 07:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 07:15:14","page":1} 
[2026-09-18 07:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 06:30:15","window_to":"2026-09-18 07:30:16"} 
[2026-09-18 07:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 07:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 07:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 07:30:15","page":1} 
[2026-09-18 07:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 06:45:16","window_to":"2026-09-18 07:45:16"} 
[2026-09-18 07:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 07:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 08:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 07:45:16","page":1} 
[2026-09-18 08:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 07:00:17","window_to":"2026-09-18 08:00:17"} 
[2026-09-18 08:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 08:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 08:00:33] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-18 07:00:33","window_to":"2026-09-18 08:00:33"} 
[2026-09-18 08:00:33] local.INFO: Payment reminders queued {"batches":1,"students":1} 
[2026-09-18 08:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 07:15:14","window_to":"2026-09-18 08:15:14"} 
[2026-09-18 08:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 08:00:17","page":1} 
[2026-09-18 08:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 08:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 08:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 07:30:17","window_to":"2026-09-18 08:30:18"} 
[2026-09-18 08:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 08:15:15","page":1} 
[2026-09-18 08:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 08:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 08:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 08:30:18","page":1} 
[2026-09-18 08:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 07:45:16","window_to":"2026-09-18 08:45:16"} 
[2026-09-18 08:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 08:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 09:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 08:45:16","page":1} 
[2026-09-18 09:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 08:00:17","window_to":"2026-09-18 09:00:17"} 
[2026-09-18 09:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 09:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 09:00:32] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-18 08:00:32","window_to":"2026-09-18 09:00:32"} 
[2026-09-18 09:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 09:00:17","page":1} 
[2026-09-18 09:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 08:15:15","window_to":"2026-09-18 09:15:15"} 
[2026-09-18 09:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 09:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 09:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 09:15:15","page":1} 
[2026-09-18 09:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 08:30:18","window_to":"2026-09-18 09:30:18"} 
[2026-09-18 09:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 09:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 09:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 09:30:17","page":1} 
[2026-09-18 09:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 09:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 08:45:17","window_to":"2026-09-18 09:45:17"} 
[2026-09-18 09:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 10:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 09:45:16","page":1} 
[2026-09-18 10:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 09:00:20","window_to":"2026-09-18 10:00:21"} 
[2026-09-18 10:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 10:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 10:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-18 09:00:36","window_to":"2026-09-18 10:00:36"} 
[2026-09-18 10:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 10:00:20","page":1} 
[2026-09-18 10:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 09:15:15","window_to":"2026-09-18 10:15:15"} 
[2026-09-18 10:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 10:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 10:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 10:15:15","page":1} 
[2026-09-18 10:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 09:30:19","window_to":"2026-09-18 10:30:19"} 
[2026-09-18 10:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 10:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 10:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 09:45:15","window_to":"2026-09-18 10:45:15"} 
[2026-09-18 10:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 10:30:18","page":1} 
[2026-09-18 10:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 10:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 11:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 10:45:16","page":1} 
[2026-09-18 11:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 10:00:19","window_to":"2026-09-18 11:00:19"} 
[2026-09-18 11:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 11:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 11:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-18 10:00:35","window_to":"2026-09-18 11:00:35"} 
[2026-09-18 11:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 11:00:18","page":1} 
[2026-09-18 11:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 10:15:16","window_to":"2026-09-18 11:15:16"} 
[2026-09-18 11:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 11:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 11:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 11:15:16","page":1} 
[2026-09-18 11:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 10:30:19","window_to":"2026-09-18 11:30:19"} 
[2026-09-18 11:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 11:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 11:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 11:30:19","page":1} 
[2026-09-18 11:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 10:45:17","window_to":"2026-09-18 11:45:17"} 
[2026-09-18 11:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 11:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 12:00:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 11:00:21","window_to":"2026-09-18 12:00:22"} 
[2026-09-18 12:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 11:45:18","page":1} 
[2026-09-18 12:00:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 12:00:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 12:00:40] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_18_12_00_40.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-18 12:00:40] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-18 11:00:40","window_to":"2026-09-18 12:00:40"} 
[2026-09-18 12:00:47] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_18_12_00_40.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-18 12:15:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 11:15:20","window_to":"2026-09-18 12:15:20"} 
[2026-09-18 12:15:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 12:00:22","page":1} 
[2026-09-18 12:15:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 12:15:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 12:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 11:30:18","window_to":"2026-09-18 12:30:18"} 
[2026-09-18 12:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 12:15:20","page":1} 
[2026-09-18 12:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 12:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 12:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 12:30:19","page":1} 
[2026-09-18 12:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 11:45:16","window_to":"2026-09-18 12:45:16"} 
[2026-09-18 12:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 12:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 13:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 12:45:16","page":1} 
[2026-09-18 13:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 12:00:20","window_to":"2026-09-18 13:00:20"} 
[2026-09-18 13:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 13:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 13:00:37] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-18 12:00:36","window_to":"2026-09-18 13:00:36"} 
[2026-09-18 13:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 13:00:20","page":1} 
[2026-09-18 13:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 12:15:16","window_to":"2026-09-18 13:15:16"} 
[2026-09-18 13:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 13:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 13:30:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 12:30:21","window_to":"2026-09-18 13:30:21"} 
[2026-09-18 13:30:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 13:15:16","page":1} 
[2026-09-18 13:30:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 13:30:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 13:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 12:45:18","window_to":"2026-09-18 13:45:18"} 
[2026-09-18 13:45:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 13:30:22","page":1} 
[2026-09-18 13:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 13:45:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 14:00:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 13:45:20","page":1} 
[2026-09-18 14:00:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 13:00:22","window_to":"2026-09-18 14:00:22"} 
[2026-09-18 14:00:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 14:00:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 14:00:39] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-18 13:00:39","window_to":"2026-09-18 14:00:39"} 
[2026-09-18 14:00:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:00:59] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:01:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:01:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:01:59] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:02:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:03:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:03:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:04:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:04:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:05:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:05:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:06:04] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:06:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:07:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:07:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:08:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:08:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:09:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:09:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:11:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:11:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:12:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:12:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:13:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:13:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:14:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:14:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 13:15:15","window_to":"2026-09-18 14:15:15"} 
[2026-09-18 14:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 14:00:23","page":1} 
[2026-09-18 14:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 14:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 14:15:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:15:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:16:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:16:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:17:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:17:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:18:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:18:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:19:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:19:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:20:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:20:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:21:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:21:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:22:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:22:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:23:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:23:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:24:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:24:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:25:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:25:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:26:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:26:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:27:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:27:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:28:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:28:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:29:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:29:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 13:30:18","window_to":"2026-09-18 14:30:19"} 
[2026-09-18 14:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 14:15:17","page":1} 
[2026-09-18 14:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 14:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 14:30:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:30:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:31:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:31:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:32:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:32:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:33:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:33:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:34:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:34:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:35:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:35:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:36:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:36:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:37:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:37:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:38:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:38:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:39:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:39:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:40:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:40:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:41:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:41:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:42:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:42:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:43:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:43:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:44:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:44:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 14:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 14:30:20","page":1} 
[2026-09-18 14:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 13:45:17","window_to":"2026-09-18 14:45:17"} 
[2026-09-18 14:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 14:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 15:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 14:00:19","window_to":"2026-09-18 15:00:20"} 
[2026-09-18 15:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 14:45:18","page":1} 
[2026-09-18 15:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 15:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 15:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-18 14:00:37","window_to":"2026-09-18 15:00:37"} 
[2026-09-18 15:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 14:15:16","window_to":"2026-09-18 15:15:16"} 
[2026-09-18 15:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 15:00:20","page":1} 
[2026-09-18 15:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 15:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 15:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 15:15:17","page":1} 
[2026-09-18 15:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 14:30:20","window_to":"2026-09-18 15:30:20"} 
[2026-09-18 15:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 15:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 15:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 15:30:20","page":1} 
[2026-09-18 15:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 14:45:17","window_to":"2026-09-18 15:45:18"} 
[2026-09-18 15:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 15:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 16:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 15:00:20","window_to":"2026-09-18 16:00:20"} 
[2026-09-18 16:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 15:45:17","page":1} 
[2026-09-18 16:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 16:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 16:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-18 15:00:36","window_to":"2026-09-18 16:00:36"} 
[2026-09-18 16:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 16:00:21","page":1} 
[2026-09-18 16:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 15:15:17","window_to":"2026-09-18 16:15:17"} 
[2026-09-18 16:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 16:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 16:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 15:30:19","window_to":"2026-09-18 16:30:19"} 
[2026-09-18 16:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 16:15:17","page":1} 
[2026-09-18 16:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 16:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 16:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 16:30:19","page":1} 
[2026-09-18 16:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 15:45:17","window_to":"2026-09-18 16:45:17"} 
[2026-09-18 16:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 16:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 17:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 16:00:19","window_to":"2026-09-18 17:00:19"} 
[2026-09-18 17:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 16:45:17","page":1} 
[2026-09-18 17:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 17:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 17:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-18 16:00:35","window_to":"2026-09-18 17:00:36"} 
[2026-09-18 17:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 16:15:16","window_to":"2026-09-18 17:15:17"} 
[2026-09-18 17:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 17:00:20","page":1} 
[2026-09-18 17:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 17:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 17:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 16:30:18","window_to":"2026-09-18 17:30:18"} 
[2026-09-18 17:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 17:15:17","page":1} 
[2026-09-18 17:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 17:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 17:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 17:30:18","page":1} 
[2026-09-18 17:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 16:45:17","window_to":"2026-09-18 17:45:17"} 
[2026-09-18 17:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 17:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 18:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 17:45:17","page":1} 
[2026-09-18 18:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 17:00:18","window_to":"2026-09-18 18:00:18"} 
[2026-09-18 18:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 18:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 18:00:33] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-18 17:00:33","window_to":"2026-09-18 18:00:33"} 
[2026-09-18 18:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 17:15:17","window_to":"2026-09-18 18:15:17"} 
[2026-09-18 18:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 18:00:18","page":1} 
[2026-09-18 18:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 18:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 18:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 18:15:17","page":1} 
[2026-09-18 18:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 17:30:17","window_to":"2026-09-18 18:30:18"} 
[2026-09-18 18:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 18:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 18:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 18:30:17","page":1} 
[2026-09-18 18:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 17:45:16","window_to":"2026-09-18 18:45:16"} 
[2026-09-18 18:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 18:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 19:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 18:00:19","window_to":"2026-09-18 19:00:19"} 
[2026-09-18 19:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 18:45:16","page":1} 
[2026-09-18 19:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 19:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 19:00:35] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-18 18:00:35","window_to":"2026-09-18 19:00:35"} 
[2026-09-18 19:04:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:04:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:04:59] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:05:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:05:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:06:04] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:06:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:06:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:07:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:08:01] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:08:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:09:02] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:09:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:10:03] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:10:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:11:02] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:11:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:12:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:12:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:13:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:13:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:14:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:14:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 18:15:16","window_to":"2026-09-18 19:15:16"} 
[2026-09-18 19:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 19:00:19","page":1} 
[2026-09-18 19:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 19:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 19:15:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:15:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:16:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:16:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:17:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:17:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:18:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:18:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:19:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:19:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:20:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:20:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:21:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:21:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:22:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:22:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-18 19:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 18:30:17","window_to":"2026-09-18 19:30:17"} 
[2026-09-18 19:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 19:15:17","page":1} 
[2026-09-18 19:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 19:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 19:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 19:30:19","page":1} 
[2026-09-18 19:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 18:45:17","window_to":"2026-09-18 19:45:17"} 
[2026-09-18 19:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 19:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 20:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 19:45:16","page":1} 
[2026-09-18 20:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 19:00:19","window_to":"2026-09-18 20:00:19"} 
[2026-09-18 20:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 20:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 20:00:35] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-18 19:00:35","window_to":"2026-09-18 20:00:35"} 
[2026-09-18 20:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 20:00:19","page":1} 
[2026-09-18 20:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 19:15:17","window_to":"2026-09-18 20:15:17"} 
[2026-09-18 20:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 20:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 20:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 20:15:16","page":1} 
[2026-09-18 20:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 19:30:17","window_to":"2026-09-18 20:30:17"} 
[2026-09-18 20:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 20:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 20:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 19:45:15","window_to":"2026-09-18 20:45:15"} 
[2026-09-18 20:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 20:30:17","page":1} 
[2026-09-18 20:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 20:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 21:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 20:00:17","window_to":"2026-09-18 21:00:17"} 
[2026-09-18 21:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 20:45:16","page":1} 
[2026-09-18 21:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 21:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 21:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-18 20:00:33","window_to":"2026-09-18 21:00:33"} 
[2026-09-18 21:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 20:15:14","window_to":"2026-09-18 21:15:14"} 
[2026-09-18 21:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 21:00:18","page":1} 
[2026-09-18 21:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 21:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 21:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 20:30:18","window_to":"2026-09-18 21:30:18"} 
[2026-09-18 21:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 21:15:15","page":1} 
[2026-09-18 21:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 21:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 21:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 21:30:18","page":1} 
[2026-09-18 21:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 20:45:16","window_to":"2026-09-18 21:45:17"} 
[2026-09-18 21:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 21:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 22:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 21:00:17","window_to":"2026-09-18 22:00:17"} 
[2026-09-18 22:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 21:45:17","page":1} 
[2026-09-18 22:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 22:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 22:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-18 21:00:34","window_to":"2026-09-18 22:00:34"} 
[2026-09-18 22:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 22:00:18","page":1} 
[2026-09-18 22:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 21:15:16","window_to":"2026-09-18 22:15:16"} 
[2026-09-18 22:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 22:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 22:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 22:15:16","page":1} 
[2026-09-18 22:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 21:30:20","window_to":"2026-09-18 22:30:20"} 
[2026-09-18 22:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 22:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 22:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 22:30:20","page":1} 
[2026-09-18 22:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 21:45:17","window_to":"2026-09-18 22:45:17"} 
[2026-09-18 22:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 22:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 23:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 22:45:17","page":1} 
[2026-09-18 23:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 22:00:18","window_to":"2026-09-18 23:00:18"} 
[2026-09-18 23:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 23:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 23:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-18 22:00:34","window_to":"2026-09-18 23:00:34"} 
[2026-09-18 23:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 23:00:18","page":1} 
[2026-09-18 23:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 22:15:16","window_to":"2026-09-18 23:15:16"} 
[2026-09-18 23:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 23:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 23:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 22:30:18","window_to":"2026-09-18 23:30:18"} 
[2026-09-18 23:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 23:15:16","page":1} 
[2026-09-18 23:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 23:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-18 23:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 23:30:19","page":1} 
[2026-09-18 23:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 22:45:16","window_to":"2026-09-18 23:45:16"} 
[2026-09-18 23:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-18 23:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 00:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-18 23:45:16","page":1} 
[2026-09-19 00:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 23:00:18","window_to":"2026-09-19 00:00:18"} 
[2026-09-19 00:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 00:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 00:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-18 23:00:36","window_to":"2026-09-19 00:00:36"} 
[2026-09-19 00:00:37] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_19_00_00_37.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-19 00:00:37] local.INFO: Student payment status check queued {"batches":1,"students":1} 
[2026-09-19 00:00:43] local.INFO: Student payment status cron evaluated {"student_id":5,"admission_no":"26/000001","outstanding_amount":24000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-19 00:00:46] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_19_00_00_37.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-19 00:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 23:15:15","window_to":"2026-09-19 00:15:15"} 
[2026-09-19 00:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 00:00:18","page":1} 
[2026-09-19 00:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 00:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 00:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 00:15:16","page":1} 
[2026-09-19 00:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 23:30:17","window_to":"2026-09-19 00:30:17"} 
[2026-09-19 00:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 00:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 00:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-18 23:45:16","window_to":"2026-09-19 00:45:17"} 
[2026-09-19 00:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 00:30:17","page":1} 
[2026-09-19 00:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 00:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 01:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 00:00:18","window_to":"2026-09-19 01:00:18"} 
[2026-09-19 01:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 00:45:17","page":1} 
[2026-09-19 01:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 01:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 01:00:37] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-19 00:00:37","window_to":"2026-09-19 01:00:37"} 
[2026-09-19 01:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 00:15:16","window_to":"2026-09-19 01:15:16"} 
[2026-09-19 01:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 01:00:19","page":1} 
[2026-09-19 01:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 01:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 01:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 01:15:16","page":1} 
[2026-09-19 01:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 00:30:18","window_to":"2026-09-19 01:30:18"} 
[2026-09-19 01:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 01:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 01:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 00:45:16","window_to":"2026-09-19 01:45:16"} 
[2026-09-19 01:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 01:30:18","page":1} 
[2026-09-19 01:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 01:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 02:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 01:00:18","window_to":"2026-09-19 02:00:18"} 
[2026-09-19 02:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 01:45:17","page":1} 
[2026-09-19 02:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 02:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 02:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-19 01:00:34","window_to":"2026-09-19 02:00:34"} 
[2026-09-19 02:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 01:15:15","window_to":"2026-09-19 02:15:15"} 
[2026-09-19 02:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 02:00:20","page":1} 
[2026-09-19 02:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 02:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 02:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 01:30:16","window_to":"2026-09-19 02:30:16"} 
[2026-09-19 02:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 02:15:16","page":1} 
[2026-09-19 02:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 02:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 02:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 01:45:14","window_to":"2026-09-19 02:45:14"} 
[2026-09-19 02:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 02:30:16","page":1} 
[2026-09-19 02:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 02:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 03:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 02:45:14","page":1} 
[2026-09-19 03:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 02:00:17","window_to":"2026-09-19 03:00:17"} 
[2026-09-19 03:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 03:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 03:00:31] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-19 02:00:31","window_to":"2026-09-19 03:00:31"} 
[2026-09-19 03:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 03:00:17","page":1} 
[2026-09-19 03:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 02:15:15","window_to":"2026-09-19 03:15:15"} 
[2026-09-19 03:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 03:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 03:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 02:30:16","window_to":"2026-09-19 03:30:16"} 
[2026-09-19 03:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 03:15:16","page":1} 
[2026-09-19 03:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 03:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 03:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 02:45:16","window_to":"2026-09-19 03:45:16"} 
[2026-09-19 03:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 03:30:16","page":1} 
[2026-09-19 03:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 03:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 04:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 03:00:18","window_to":"2026-09-19 04:00:18"} 
[2026-09-19 04:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 03:45:17","page":1} 
[2026-09-19 04:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 04:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 04:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-19 03:00:34","window_to":"2026-09-19 04:00:34"} 
[2026-09-19 04:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 04:00:18","page":1} 
[2026-09-19 04:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 03:15:16","window_to":"2026-09-19 04:15:16"} 
[2026-09-19 04:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 04:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 04:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 03:30:15","window_to":"2026-09-19 04:30:15"} 
[2026-09-19 04:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 04:15:16","page":1} 
[2026-09-19 04:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 04:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 04:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 03:45:13","window_to":"2026-09-19 04:45:13"} 
[2026-09-19 04:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 04:30:16","page":1} 
[2026-09-19 04:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 04:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 05:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 04:00:17","window_to":"2026-09-19 05:00:17"} 
[2026-09-19 05:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 04:45:14","page":1} 
[2026-09-19 05:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 05:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 05:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-19 04:00:34","window_to":"2026-09-19 05:00:34"} 
[2026-09-19 05:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 05:00:18","page":1} 
[2026-09-19 05:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 04:15:15","window_to":"2026-09-19 05:15:15"} 
[2026-09-19 05:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 05:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 05:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 04:30:18","window_to":"2026-09-19 05:30:18"} 
[2026-09-19 05:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 05:15:15","page":1} 
[2026-09-19 05:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 05:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 05:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 05:30:19","page":1} 
[2026-09-19 05:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 04:45:15","window_to":"2026-09-19 05:45:15"} 
[2026-09-19 05:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 05:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 06:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 05:45:15","page":1} 
[2026-09-19 06:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 05:00:19","window_to":"2026-09-19 06:00:19"} 
[2026-09-19 06:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 06:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 06:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-19 05:00:33","window_to":"2026-09-19 06:00:33"} 
[2026-09-19 06:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 06:00:18","page":1} 
[2026-09-19 06:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 05:15:15","window_to":"2026-09-19 06:15:15"} 
[2026-09-19 06:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 06:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 06:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 06:15:14","page":1} 
[2026-09-19 06:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 05:30:18","window_to":"2026-09-19 06:30:18"} 
[2026-09-19 06:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 06:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 06:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 06:30:19","page":1} 
[2026-09-19 06:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 05:45:17","window_to":"2026-09-19 06:45:17"} 
[2026-09-19 06:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 06:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 07:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 06:45:17","page":1} 
[2026-09-19 07:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 06:00:18","window_to":"2026-09-19 07:00:19"} 
[2026-09-19 07:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 07:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 07:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-19 06:00:33","window_to":"2026-09-19 07:00:33"} 
[2026-09-19 07:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 07:00:18","page":1} 
[2026-09-19 07:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 06:15:15","window_to":"2026-09-19 07:15:15"} 
[2026-09-19 07:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 07:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 07:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 07:15:15","page":1} 
[2026-09-19 07:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 06:30:16","window_to":"2026-09-19 07:30:16"} 
[2026-09-19 07:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 07:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 07:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 06:45:17","window_to":"2026-09-19 07:45:17"} 
[2026-09-19 07:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 07:30:16","page":1} 
[2026-09-19 07:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 07:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 08:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 07:00:18","window_to":"2026-09-19 08:00:18"} 
[2026-09-19 08:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 07:45:17","page":1} 
[2026-09-19 08:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 08:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 08:00:38] local.INFO: Payment reminders queued {"batches":1,"students":1} 
[2026-09-19 08:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-19 07:00:38","window_to":"2026-09-19 08:00:38"} 
[2026-09-19 08:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 08:00:19","page":1} 
[2026-09-19 08:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 07:15:15","window_to":"2026-09-19 08:15:15"} 
[2026-09-19 08:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 08:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 08:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 08:15:15","page":1} 
[2026-09-19 08:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 07:30:17","window_to":"2026-09-19 08:30:17"} 
[2026-09-19 08:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 08:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 08:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 08:30:18","page":1} 
[2026-09-19 08:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 07:45:17","window_to":"2026-09-19 08:45:17"} 
[2026-09-19 08:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 08:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 09:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 08:00:17","window_to":"2026-09-19 09:00:17"} 
[2026-09-19 09:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 08:45:16","page":1} 
[2026-09-19 09:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 09:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 09:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-19 08:00:34","window_to":"2026-09-19 09:00:34"} 
[2026-09-19 09:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 08:15:16","window_to":"2026-09-19 09:15:16"} 
[2026-09-19 09:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 09:00:18","page":1} 
[2026-09-19 09:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 09:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 09:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 08:30:18","window_to":"2026-09-19 09:30:18"} 
[2026-09-19 09:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 09:15:17","page":1} 
[2026-09-19 09:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 09:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 09:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 09:30:19","page":1} 
[2026-09-19 09:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 08:45:16","window_to":"2026-09-19 09:45:16"} 
[2026-09-19 09:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 09:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 10:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 09:45:16","page":1} 
[2026-09-19 10:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 09:00:19","window_to":"2026-09-19 10:00:20"} 
[2026-09-19 10:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 10:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 10:00:39] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-19 09:00:39","window_to":"2026-09-19 10:00:39"} 
[2026-09-19 10:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 10:00:20","page":1} 
[2026-09-19 10:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 10:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 10:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 09:15:17","window_to":"2026-09-19 10:15:17"} 
[2026-09-19 10:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 09:30:16","window_to":"2026-09-19 10:30:16"} 
[2026-09-19 10:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 10:15:16","page":1} 
[2026-09-19 10:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 10:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 10:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 09:45:16","window_to":"2026-09-19 10:45:16"} 
[2026-09-19 10:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 10:30:17","page":1} 
[2026-09-19 10:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 10:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 11:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 10:00:17","window_to":"2026-09-19 11:00:18"} 
[2026-09-19 11:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 10:45:17","page":1} 
[2026-09-19 11:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 11:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 11:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-19 10:00:34","window_to":"2026-09-19 11:00:34"} 
[2026-09-19 11:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 11:00:18","page":1} 
[2026-09-19 11:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 10:15:16","window_to":"2026-09-19 11:15:16"} 
[2026-09-19 11:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 11:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 11:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 11:15:16","page":1} 
[2026-09-19 11:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 10:30:17","window_to":"2026-09-19 11:30:17"} 
[2026-09-19 11:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 11:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 11:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 11:30:16","page":1} 
[2026-09-19 11:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 10:45:16","window_to":"2026-09-19 11:45:16"} 
[2026-09-19 11:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 11:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 12:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 11:00:20","window_to":"2026-09-19 12:00:20"} 
[2026-09-19 12:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 11:45:16","page":1} 
[2026-09-19 12:00:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 12:00:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 12:00:39] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_19_12_00_39.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-19 12:00:40] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-19 11:00:39","window_to":"2026-09-19 12:00:39"} 
[2026-09-19 12:00:46] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_19_12_00_39.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-19 12:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 12:00:22","page":1} 
[2026-09-19 12:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 11:15:16","window_to":"2026-09-19 12:15:17"} 
[2026-09-19 12:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 12:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 12:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 12:15:17","page":1} 
[2026-09-19 12:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 11:30:18","window_to":"2026-09-19 12:30:18"} 
[2026-09-19 12:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 12:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 12:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 11:45:15","window_to":"2026-09-19 12:45:15"} 
[2026-09-19 12:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 12:30:18","page":1} 
[2026-09-19 12:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 12:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 13:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 12:45:16","page":1} 
[2026-09-19 13:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 12:00:17","window_to":"2026-09-19 13:00:17"} 
[2026-09-19 13:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 13:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 13:00:32] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-19 12:00:32","window_to":"2026-09-19 13:00:32"} 
[2026-09-19 13:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 12:15:14","window_to":"2026-09-19 13:15:15"} 
[2026-09-19 13:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 13:00:18","page":1} 
[2026-09-19 13:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 13:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 13:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 13:15:16","page":1} 
[2026-09-19 13:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 12:30:17","window_to":"2026-09-19 13:30:17"} 
[2026-09-19 13:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 13:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 13:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 12:45:16","window_to":"2026-09-19 13:45:16"} 
[2026-09-19 13:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 13:30:17","page":1} 
[2026-09-19 13:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 13:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 14:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 13:00:19","window_to":"2026-09-19 14:00:19"} 
[2026-09-19 14:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 13:45:16","page":1} 
[2026-09-19 14:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 14:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 14:00:35] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-19 13:00:34","window_to":"2026-09-19 14:00:35"} 
[2026-09-19 14:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 14:00:19","page":1} 
[2026-09-19 14:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 13:15:16","window_to":"2026-09-19 14:15:16"} 
[2026-09-19 14:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 14:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 14:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 13:30:17","window_to":"2026-09-19 14:30:18"} 
[2026-09-19 14:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 14:15:17","page":1} 
[2026-09-19 14:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 14:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 14:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 13:45:15","window_to":"2026-09-19 14:45:15"} 
[2026-09-19 14:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 14:30:18","page":1} 
[2026-09-19 14:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 14:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 15:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 14:00:17","window_to":"2026-09-19 15:00:17"} 
[2026-09-19 15:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 14:45:16","page":1} 
[2026-09-19 15:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 15:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 15:00:33] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-19 14:00:33","window_to":"2026-09-19 15:00:33"} 
[2026-09-19 15:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 14:15:15","window_to":"2026-09-19 15:15:15"} 
[2026-09-19 15:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 15:00:18","page":1} 
[2026-09-19 15:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 15:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 15:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 14:30:17","window_to":"2026-09-19 15:30:17"} 
[2026-09-19 15:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 15:15:16","page":1} 
[2026-09-19 15:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 15:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 15:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 15:30:18","page":1} 
[2026-09-19 15:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 14:45:18","window_to":"2026-09-19 15:45:18"} 
[2026-09-19 15:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 15:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 16:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 15:00:18","window_to":"2026-09-19 16:00:18"} 
[2026-09-19 16:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 15:45:18","page":1} 
[2026-09-19 16:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 16:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 16:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-19 15:00:34","window_to":"2026-09-19 16:00:34"} 
[2026-09-19 16:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 16:00:19","page":1} 
[2026-09-19 16:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 15:15:15","window_to":"2026-09-19 16:15:15"} 
[2026-09-19 16:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 16:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 16:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 16:15:15","page":1} 
[2026-09-19 16:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 15:30:20","window_to":"2026-09-19 16:30:20"} 
[2026-09-19 16:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 16:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 16:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 15:45:15","window_to":"2026-09-19 16:45:15"} 
[2026-09-19 16:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 16:30:19","page":1} 
[2026-09-19 16:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 16:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 17:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 16:45:16","page":1} 
[2026-09-19 17:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 16:00:17","window_to":"2026-09-19 17:00:18"} 
[2026-09-19 17:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 17:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 17:00:33] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-19 16:00:32","window_to":"2026-09-19 17:00:32"} 
[2026-09-19 17:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 17:00:18","page":1} 
[2026-09-19 17:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 16:15:17","window_to":"2026-09-19 17:15:17"} 
[2026-09-19 17:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 17:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 17:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 17:15:17","page":1} 
[2026-09-19 17:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 16:30:18","window_to":"2026-09-19 17:30:18"} 
[2026-09-19 17:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 17:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 17:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 17:30:18","page":1} 
[2026-09-19 17:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 16:45:17","window_to":"2026-09-19 17:45:17"} 
[2026-09-19 17:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 17:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 18:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 17:45:17","page":1} 
[2026-09-19 18:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 17:00:19","window_to":"2026-09-19 18:00:19"} 
[2026-09-19 18:00:21] local.ERROR: ❌ Exception while polling TikTok leads {"error":"cURL error 55: getpeername() failed with errno 107: Transport endpoint is not connected (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://business-api.tiktok.com/open_api/v1.3/page/leads/get/?filtering=%7B%22start_time%22%3A%222026-09-19%2017%3A45%3A17%22%7D&page=1&page_size=100"} 
[2026-09-19 18:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 18:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-19 17:00:36","window_to":"2026-09-19 18:00:36"} 
[2026-09-19 18:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 17:15:17","window_to":"2026-09-19 18:15:17"} 
[2026-09-19 18:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 18:00:19","page":1} 
[2026-09-19 18:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 18:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 18:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 18:15:18","page":1} 
[2026-09-19 18:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 17:30:17","window_to":"2026-09-19 18:30:17"} 
[2026-09-19 18:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 18:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 18:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 17:45:17","window_to":"2026-09-19 18:45:17"} 
[2026-09-19 18:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 18:30:18","page":1} 
[2026-09-19 18:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 18:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 19:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 18:45:18","page":1} 
[2026-09-19 19:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 18:00:17","window_to":"2026-09-19 19:00:18"} 
[2026-09-19 19:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 19:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 19:00:32] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-19 18:00:32","window_to":"2026-09-19 19:00:32"} 
[2026-09-19 19:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 19:00:17","page":1} 
[2026-09-19 19:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 18:15:16","window_to":"2026-09-19 19:15:16"} 
[2026-09-19 19:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 19:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 19:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 18:30:18","window_to":"2026-09-19 19:30:18"} 
[2026-09-19 19:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 19:15:16","page":1} 
[2026-09-19 19:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 19:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 19:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 18:45:17","window_to":"2026-09-19 19:45:17"} 
[2026-09-19 19:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 19:30:19","page":1} 
[2026-09-19 19:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 19:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 20:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 19:00:18","window_to":"2026-09-19 20:00:18"} 
[2026-09-19 20:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 19:45:17","page":1} 
[2026-09-19 20:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 20:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 20:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-19 19:00:33","window_to":"2026-09-19 20:00:33"} 
[2026-09-19 20:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 20:00:18","page":1} 
[2026-09-19 20:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 19:15:18","window_to":"2026-09-19 20:15:18"} 
[2026-09-19 20:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 20:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 20:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 20:15:17","page":1} 
[2026-09-19 20:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 19:30:18","window_to":"2026-09-19 20:30:18"} 
[2026-09-19 20:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 20:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 20:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 19:45:15","window_to":"2026-09-19 20:45:15"} 
[2026-09-19 20:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 20:30:18","page":1} 
[2026-09-19 20:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 20:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 21:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 20:45:16","page":1} 
[2026-09-19 21:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 20:00:19","window_to":"2026-09-19 21:00:19"} 
[2026-09-19 21:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 21:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 21:00:35] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-19 20:00:35","window_to":"2026-09-19 21:00:35"} 
[2026-09-19 21:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 20:15:15","window_to":"2026-09-19 21:15:15"} 
[2026-09-19 21:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 21:00:19","page":1} 
[2026-09-19 21:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 21:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 21:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 20:30:18","window_to":"2026-09-19 21:30:18"} 
[2026-09-19 21:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 21:15:16","page":1} 
[2026-09-19 21:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 21:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 21:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 21:30:20","page":1} 
[2026-09-19 21:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 20:45:17","window_to":"2026-09-19 21:45:17"} 
[2026-09-19 21:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 21:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 22:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 21:00:18","window_to":"2026-09-19 22:00:18"} 
[2026-09-19 22:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 21:45:17","page":1} 
[2026-09-19 22:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 22:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 22:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-19 21:00:34","window_to":"2026-09-19 22:00:34"} 
[2026-09-19 22:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 21:15:15","window_to":"2026-09-19 22:15:15"} 
[2026-09-19 22:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 22:00:18","page":1} 
[2026-09-19 22:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 22:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 22:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 22:15:15","page":1} 
[2026-09-19 22:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 21:30:17","window_to":"2026-09-19 22:30:17"} 
[2026-09-19 22:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 22:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 22:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 22:30:17","page":1} 
[2026-09-19 22:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 21:45:17","window_to":"2026-09-19 22:45:17"} 
[2026-09-19 22:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 22:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 23:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 22:45:17","page":1} 
[2026-09-19 23:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 22:00:18","window_to":"2026-09-19 23:00:18"} 
[2026-09-19 23:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 23:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 23:00:33] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-19 22:00:33","window_to":"2026-09-19 23:00:33"} 
[2026-09-19 23:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 23:00:18","page":1} 
[2026-09-19 23:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 22:15:15","window_to":"2026-09-19 23:15:15"} 
[2026-09-19 23:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 23:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 23:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 22:30:17","window_to":"2026-09-19 23:30:17"} 
[2026-09-19 23:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 23:15:15","page":1} 
[2026-09-19 23:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 23:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-19 23:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 22:45:16","window_to":"2026-09-19 23:45:16"} 
[2026-09-19 23:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 23:30:18","page":1} 
[2026-09-19 23:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-19 23:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 00:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-19 23:45:16","page":1} 
[2026-09-20 00:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 23:00:18","window_to":"2026-09-20 00:00:18"} 
[2026-09-20 00:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 00:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 00:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-19 23:00:37","window_to":"2026-09-20 00:00:38"} 
[2026-09-20 00:00:38] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_20_00_00_38.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-20 00:00:38] local.INFO: Student payment status check queued {"batches":1,"students":1} 
[2026-09-20 00:00:42] local.INFO: Student payment status cron evaluated {"student_id":5,"admission_no":"26/000001","outstanding_amount":24000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-20 00:00:46] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_20_00_00_38.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-20 00:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 00:00:19","page":1} 
[2026-09-20 00:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 23:15:15","window_to":"2026-09-20 00:15:15"} 
[2026-09-20 00:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 00:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 00:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 00:15:15","page":1} 
[2026-09-20 00:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 23:30:15","window_to":"2026-09-20 00:30:15"} 
[2026-09-20 00:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 00:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 00:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-19 23:45:15","window_to":"2026-09-20 00:45:15"} 
[2026-09-20 00:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 00:30:15","page":1} 
[2026-09-20 00:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 00:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 01:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 00:45:16","page":1} 
[2026-09-20 01:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 00:00:20","window_to":"2026-09-20 01:00:20"} 
[2026-09-20 01:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 01:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 01:00:37] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-20 00:00:37","window_to":"2026-09-20 01:00:37"} 
[2026-09-20 01:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 01:00:19","page":1} 
[2026-09-20 01:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 00:15:16","window_to":"2026-09-20 01:15:16"} 
[2026-09-20 01:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 01:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 01:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 01:15:15","page":1} 
[2026-09-20 01:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 00:30:18","window_to":"2026-09-20 01:30:18"} 
[2026-09-20 01:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 01:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 01:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 01:30:18","page":1} 
[2026-09-20 01:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 01:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 01:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 00:45:17","window_to":"2026-09-20 01:45:17"} 
[2026-09-20 02:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 01:45:16","page":1} 
[2026-09-20 02:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 01:00:16","window_to":"2026-09-20 02:00:16"} 
[2026-09-20 02:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 02:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 02:00:32] local.INFO: JWT secrets rotated and runtime reloaded {"at":"2026-09-20 02:00:32"} 
[2026-09-20 02:00:33] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-20 01:00:32","window_to":"2026-09-20 02:00:32"} 
[2026-09-20 02:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 02:00:16","page":1} 
[2026-09-20 02:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 01:15:15","window_to":"2026-09-20 02:15:15"} 
[2026-09-20 02:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 02:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 02:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 02:15:15","page":1} 
[2026-09-20 02:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 01:30:16","window_to":"2026-09-20 02:30:17"} 
[2026-09-20 02:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 02:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 02:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 02:30:16","page":1} 
[2026-09-20 02:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 02:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 01:45:15","window_to":"2026-09-20 02:45:15"} 
[2026-09-20 02:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 03:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 02:45:14","page":1} 
[2026-09-20 03:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 02:00:18","window_to":"2026-09-20 03:00:18"} 
[2026-09-20 03:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 03:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 03:00:32] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-20 02:00:32","window_to":"2026-09-20 03:00:32"} 
[2026-09-20 03:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 03:00:18","page":1} 
[2026-09-20 03:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 02:15:14","window_to":"2026-09-20 03:15:14"} 
[2026-09-20 03:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 03:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 03:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 03:15:14","page":1} 
[2026-09-20 03:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 02:30:17","window_to":"2026-09-20 03:30:17"} 
[2026-09-20 03:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 03:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 03:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 03:30:17","page":1} 
[2026-09-20 03:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 02:45:15","window_to":"2026-09-20 03:45:15"} 
[2026-09-20 03:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 03:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 04:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 03:45:14","page":1} 
[2026-09-20 04:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 03:00:17","window_to":"2026-09-20 04:00:17"} 
[2026-09-20 04:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 04:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 04:00:31] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-20 03:00:31","window_to":"2026-09-20 04:00:31"} 
[2026-09-20 04:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 04:00:17","page":1} 
[2026-09-20 04:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 03:15:15","window_to":"2026-09-20 04:15:15"} 
[2026-09-20 04:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 04:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 04:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 04:15:15","page":1} 
[2026-09-20 04:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 03:30:17","window_to":"2026-09-20 04:30:17"} 
[2026-09-20 04:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 04:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 04:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 04:30:17","page":1} 
[2026-09-20 04:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 03:45:15","window_to":"2026-09-20 04:45:15"} 
[2026-09-20 04:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 04:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 05:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 04:00:16","window_to":"2026-09-20 05:00:16"} 
[2026-09-20 05:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 04:45:15","page":1} 
[2026-09-20 05:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 05:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 05:00:31] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-20 04:00:30","window_to":"2026-09-20 05:00:31"} 
[2026-09-20 05:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 05:00:17","page":1} 
[2026-09-20 05:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 04:15:14","window_to":"2026-09-20 05:15:14"} 
[2026-09-20 05:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 05:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 05:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 05:15:15","page":1} 
[2026-09-20 05:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 04:30:18","window_to":"2026-09-20 05:30:19"} 
[2026-09-20 05:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 05:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 05:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 04:45:15","window_to":"2026-09-20 05:45:15"} 
[2026-09-20 05:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 05:30:19","page":1} 
[2026-09-20 05:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 05:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 06:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 05:45:15","page":1} 
[2026-09-20 06:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 05:00:18","window_to":"2026-09-20 06:00:18"} 
[2026-09-20 06:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 06:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 06:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-20 05:00:33","window_to":"2026-09-20 06:00:33"} 
[2026-09-20 06:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 06:00:18","page":1} 
[2026-09-20 06:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 05:15:15","window_to":"2026-09-20 06:15:15"} 
[2026-09-20 06:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 06:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 06:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 06:15:15","page":1} 
[2026-09-20 06:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 05:30:17","window_to":"2026-09-20 06:30:17"} 
[2026-09-20 06:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 06:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 06:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 05:45:15","window_to":"2026-09-20 06:45:15"} 
[2026-09-20 06:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 06:30:17","page":1} 
[2026-09-20 06:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 06:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 07:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 06:00:17","window_to":"2026-09-20 07:00:17"} 
[2026-09-20 07:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 06:45:15","page":1} 
[2026-09-20 07:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 07:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 07:00:33] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-20 06:00:33","window_to":"2026-09-20 07:00:33"} 
[2026-09-20 07:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 06:15:15","window_to":"2026-09-20 07:15:15"} 
[2026-09-20 07:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 07:00:18","page":1} 
[2026-09-20 07:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 07:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 07:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 06:30:17","window_to":"2026-09-20 07:30:17"} 
[2026-09-20 07:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 07:15:16","page":1} 
[2026-09-20 07:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 07:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 07:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 07:30:18","page":1} 
[2026-09-20 07:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 06:45:16","window_to":"2026-09-20 07:45:16"} 
[2026-09-20 07:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 07:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 08:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 07:00:16","window_to":"2026-09-20 08:00:17"} 
[2026-09-20 08:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 07:45:16","page":1} 
[2026-09-20 08:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 08:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 08:00:33] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-20 07:00:33","window_to":"2026-09-20 08:00:33"} 
[2026-09-20 08:00:34] local.INFO: Payment reminders queued {"batches":1,"students":1} 
[2026-09-20 08:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 07:15:15","window_to":"2026-09-20 08:15:15"} 
[2026-09-20 08:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 08:00:18","page":1} 
[2026-09-20 08:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 08:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 08:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 08:15:16","page":1} 
[2026-09-20 08:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 07:30:19","window_to":"2026-09-20 08:30:19"} 
[2026-09-20 08:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 08:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 08:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 08:30:19","page":1} 
[2026-09-20 08:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 07:45:16","window_to":"2026-09-20 08:45:16"} 
[2026-09-20 08:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 08:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 09:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 08:45:16","page":1} 
[2026-09-20 09:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 08:00:19","window_to":"2026-09-20 09:00:19"} 
[2026-09-20 09:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 09:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 09:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-20 08:00:34","window_to":"2026-09-20 09:00:34"} 
[2026-09-20 09:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 08:15:16","window_to":"2026-09-20 09:15:16"} 
[2026-09-20 09:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 09:00:18","page":1} 
[2026-09-20 09:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 09:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 09:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 09:15:17","page":1} 
[2026-09-20 09:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 08:30:19","window_to":"2026-09-20 09:30:19"} 
[2026-09-20 09:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 09:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 09:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 08:45:16","window_to":"2026-09-20 09:45:16"} 
[2026-09-20 09:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 09:30:19","page":1} 
[2026-09-20 09:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 09:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 10:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 09:00:17","window_to":"2026-09-20 10:00:18"} 
[2026-09-20 10:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 09:45:17","page":1} 
[2026-09-20 10:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 10:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 10:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-20 09:00:34","window_to":"2026-09-20 10:00:34"} 
[2026-09-20 10:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 09:15:17","window_to":"2026-09-20 10:15:17"} 
[2026-09-20 10:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 10:00:18","page":1} 
[2026-09-20 10:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 10:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 10:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 10:15:18","page":1} 
[2026-09-20 10:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 09:30:18","window_to":"2026-09-20 10:30:18"} 
[2026-09-20 10:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 10:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 10:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 09:45:17","window_to":"2026-09-20 10:45:17"} 
[2026-09-20 10:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 10:30:18","page":1} 
[2026-09-20 10:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 10:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 11:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 10:45:18","page":1} 
[2026-09-20 11:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 10:00:20","window_to":"2026-09-20 11:00:20"} 
[2026-09-20 11:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 11:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 11:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-20 10:00:36","window_to":"2026-09-20 11:00:36"} 
[2026-09-20 11:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 11:00:19","page":1} 
[2026-09-20 11:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 10:15:18","window_to":"2026-09-20 11:15:18"} 
[2026-09-20 11:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 11:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 11:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 11:15:18","page":1} 
[2026-09-20 11:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 10:30:17","window_to":"2026-09-20 11:30:18"} 
[2026-09-20 11:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 11:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 11:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 11:30:18","page":1} 
[2026-09-20 11:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 10:45:17","window_to":"2026-09-20 11:45:18"} 
[2026-09-20 11:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 11:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 12:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 11:45:17","page":1} 
[2026-09-20 12:00:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 11:00:22","window_to":"2026-09-20 12:00:22"} 
[2026-09-20 12:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 12:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 12:00:41] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_20_12_00_41.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-20 12:00:41] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-20 11:00:41","window_to":"2026-09-20 12:00:41"} 
[2026-09-20 12:00:47] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_20_12_00_41.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-20 12:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 11:15:16","window_to":"2026-09-20 12:15:16"} 
[2026-09-20 12:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 12:00:21","page":1} 
[2026-09-20 12:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 12:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 12:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 11:30:16","window_to":"2026-09-20 12:30:16"} 
[2026-09-20 12:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 12:15:16","page":1} 
[2026-09-20 12:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 12:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 12:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 11:45:16","window_to":"2026-09-20 12:45:17"} 
[2026-09-20 12:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 12:30:17","page":1} 
[2026-09-20 12:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 12:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 13:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 12:00:18","window_to":"2026-09-20 13:00:18"} 
[2026-09-20 13:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 12:45:17","page":1} 
[2026-09-20 13:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 13:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 13:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-20 12:00:34","window_to":"2026-09-20 13:00:34"} 
[2026-09-20 13:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 13:00:21","page":1} 
[2026-09-20 13:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 12:15:16","window_to":"2026-09-20 13:15:16"} 
[2026-09-20 13:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 13:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 13:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 13:15:16","page":1} 
[2026-09-20 13:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 12:30:17","window_to":"2026-09-20 13:30:17"} 
[2026-09-20 13:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 13:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 13:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 12:45:16","window_to":"2026-09-20 13:45:16"} 
[2026-09-20 13:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 13:30:17","page":1} 
[2026-09-20 13:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 13:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 14:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 13:00:19","window_to":"2026-09-20 14:00:19"} 
[2026-09-20 14:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 13:45:16","page":1} 
[2026-09-20 14:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 14:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 14:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-20 13:00:34","window_to":"2026-09-20 14:00:34"} 
[2026-09-20 14:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 14:00:19","page":1} 
[2026-09-20 14:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 13:15:15","window_to":"2026-09-20 14:15:15"} 
[2026-09-20 14:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 14:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 14:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 13:30:18","window_to":"2026-09-20 14:30:18"} 
[2026-09-20 14:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 14:15:15","page":1} 
[2026-09-20 14:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 14:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 14:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 14:30:18","page":1} 
[2026-09-20 14:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 13:45:16","window_to":"2026-09-20 14:45:17"} 
[2026-09-20 14:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 14:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 15:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 14:00:19","window_to":"2026-09-20 15:00:19"} 
[2026-09-20 15:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 14:45:16","page":1} 
[2026-09-20 15:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 15:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 15:00:35] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-20 14:00:35","window_to":"2026-09-20 15:00:35"} 
[2026-09-20 15:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 15:00:20","page":1} 
[2026-09-20 15:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 14:15:16","window_to":"2026-09-20 15:15:16"} 
[2026-09-20 15:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 15:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 15:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 15:15:16","page":1} 
[2026-09-20 15:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 14:30:18","window_to":"2026-09-20 15:30:18"} 
[2026-09-20 15:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 15:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 15:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 15:30:18","page":1} 
[2026-09-20 15:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 14:45:16","window_to":"2026-09-20 15:45:16"} 
[2026-09-20 15:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 15:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 16:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 15:00:19","window_to":"2026-09-20 16:00:19"} 
[2026-09-20 16:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 15:45:16","page":1} 
[2026-09-20 16:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 16:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 16:00:35] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-20 15:00:35","window_to":"2026-09-20 16:00:35"} 
[2026-09-20 16:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 15:15:16","window_to":"2026-09-20 16:15:16"} 
[2026-09-20 16:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 16:00:19","page":1} 
[2026-09-20 16:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 16:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 16:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 15:30:19","window_to":"2026-09-20 16:30:19"} 
[2026-09-20 16:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 16:15:16","page":1} 
[2026-09-20 16:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 16:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 16:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 16:30:20","page":1} 
[2026-09-20 16:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 15:45:16","window_to":"2026-09-20 16:45:16"} 
[2026-09-20 16:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 16:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 17:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 16:00:20","window_to":"2026-09-20 17:00:20"} 
[2026-09-20 17:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 16:45:16","page":1} 
[2026-09-20 17:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 17:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 17:00:37] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-20 16:00:37","window_to":"2026-09-20 17:00:37"} 
[2026-09-20 17:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 16:15:16","window_to":"2026-09-20 17:15:16"} 
[2026-09-20 17:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 17:00:20","page":1} 
[2026-09-20 17:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 17:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 17:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 16:30:17","window_to":"2026-09-20 17:30:17"} 
[2026-09-20 17:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 17:15:16","page":1} 
[2026-09-20 17:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 17:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 17:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 17:30:18","page":1} 
[2026-09-20 17:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 16:45:16","window_to":"2026-09-20 17:45:16"} 
[2026-09-20 17:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 17:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 18:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 17:00:18","window_to":"2026-09-20 18:00:18"} 
[2026-09-20 18:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 17:45:16","page":1} 
[2026-09-20 18:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 18:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 18:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-20 17:00:36","window_to":"2026-09-20 18:00:36"} 
[2026-09-20 18:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 18:00:19","page":1} 
[2026-09-20 18:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 17:15:16","window_to":"2026-09-20 18:15:16"} 
[2026-09-20 18:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 18:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 18:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 18:15:16","page":1} 
[2026-09-20 18:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 17:30:18","window_to":"2026-09-20 18:30:18"} 
[2026-09-20 18:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 18:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 18:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 18:30:17","page":1} 
[2026-09-20 18:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 17:45:16","window_to":"2026-09-20 18:45:16"} 
[2026-09-20 18:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 18:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 19:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 18:00:20","window_to":"2026-09-20 19:00:20"} 
[2026-09-20 19:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 18:45:16","page":1} 
[2026-09-20 19:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 19:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 19:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-20 18:00:38","window_to":"2026-09-20 19:00:38"} 
[2026-09-20 19:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 19:00:21","page":1} 
[2026-09-20 19:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 18:15:17","window_to":"2026-09-20 19:15:17"} 
[2026-09-20 19:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 19:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 19:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 19:15:16","page":1} 
[2026-09-20 19:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 18:30:20","window_to":"2026-09-20 19:30:20"} 
[2026-09-20 19:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 19:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 19:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 19:30:20","page":1} 
[2026-09-20 19:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 18:45:18","window_to":"2026-09-20 19:45:18"} 
[2026-09-20 19:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 19:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 20:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 19:00:20","window_to":"2026-09-20 20:00:20"} 
[2026-09-20 20:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 19:45:18","page":1} 
[2026-09-20 20:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 20:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 20:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-20 19:00:38","window_to":"2026-09-20 20:00:38"} 
[2026-09-20 20:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 20:00:20","page":1} 
[2026-09-20 20:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 19:15:15","window_to":"2026-09-20 20:15:16"} 
[2026-09-20 20:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 20:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 20:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 20:15:16","page":1} 
[2026-09-20 20:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 19:30:18","window_to":"2026-09-20 20:30:18"} 
[2026-09-20 20:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 20:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 20:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 20:30:17","page":1} 
[2026-09-20 20:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 19:45:16","window_to":"2026-09-20 20:45:16"} 
[2026-09-20 20:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 20:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 21:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 20:00:18","window_to":"2026-09-20 21:00:18"} 
[2026-09-20 21:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 20:45:16","page":1} 
[2026-09-20 21:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 21:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 21:00:35] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-20 20:00:34","window_to":"2026-09-20 21:00:34"} 
[2026-09-20 21:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 20:15:16","window_to":"2026-09-20 21:15:16"} 
[2026-09-20 21:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 21:00:18","page":1} 
[2026-09-20 21:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 21:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 21:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 20:30:17","window_to":"2026-09-20 21:30:18"} 
[2026-09-20 21:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 21:15:16","page":1} 
[2026-09-20 21:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 21:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 21:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 20:45:17","window_to":"2026-09-20 21:45:17"} 
[2026-09-20 21:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 21:30:18","page":1} 
[2026-09-20 21:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 21:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 22:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 21:45:18","page":1} 
[2026-09-20 22:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 21:00:17","window_to":"2026-09-20 22:00:17"} 
[2026-09-20 22:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 22:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 22:00:33] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-20 21:00:33","window_to":"2026-09-20 22:00:33"} 
[2026-09-20 22:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 21:15:16","window_to":"2026-09-20 22:15:16"} 
[2026-09-20 22:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 22:00:18","page":1} 
[2026-09-20 22:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 22:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 22:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 21:30:19","window_to":"2026-09-20 22:30:19"} 
[2026-09-20 22:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 22:15:16","page":1} 
[2026-09-20 22:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 22:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 22:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 21:45:15","window_to":"2026-09-20 22:45:16"} 
[2026-09-20 22:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 22:30:20","page":1} 
[2026-09-20 22:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 22:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 23:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 22:00:19","window_to":"2026-09-20 23:00:19"} 
[2026-09-20 23:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 22:45:16","page":1} 
[2026-09-20 23:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 23:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 23:00:35] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-20 22:00:35","window_to":"2026-09-20 23:00:35"} 
[2026-09-20 23:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 22:15:14","window_to":"2026-09-20 23:15:14"} 
[2026-09-20 23:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 23:00:21","page":1} 
[2026-09-20 23:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 23:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 23:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 22:30:16","window_to":"2026-09-20 23:30:16"} 
[2026-09-20 23:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 23:15:14","page":1} 
[2026-09-20 23:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 23:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-20 23:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 23:30:18","page":1} 
[2026-09-20 23:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 22:45:16","window_to":"2026-09-20 23:45:16"} 
[2026-09-20 23:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-20 23:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 00:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-20 23:45:16","page":1} 
[2026-09-21 00:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 23:00:18","window_to":"2026-09-21 00:00:18"} 
[2026-09-21 00:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 00:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 00:00:37] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-20 23:00:36","window_to":"2026-09-21 00:00:36"} 
[2026-09-21 00:00:37] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_21_00_00_37.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-21 00:00:37] local.INFO: Student payment status check queued {"batches":1,"students":1} 
[2026-09-21 00:00:40] local.INFO: Student payment status cron evaluated {"student_id":5,"admission_no":"26/000001","outstanding_amount":24000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-21 00:00:45] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_21_00_00_37.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-21 00:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 23:15:16","window_to":"2026-09-21 00:15:16"} 
[2026-09-21 00:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 00:00:18","page":1} 
[2026-09-21 00:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 00:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 00:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 00:15:17","page":1} 
[2026-09-21 00:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 23:30:17","window_to":"2026-09-21 00:30:18"} 
[2026-09-21 00:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 00:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 00:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-20 23:45:15","window_to":"2026-09-21 00:45:15"} 
[2026-09-21 00:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 00:30:17","page":1} 
[2026-09-21 00:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 00:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 01:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 00:00:18","window_to":"2026-09-21 01:00:19"} 
[2026-09-21 01:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 00:45:15","page":1} 
[2026-09-21 01:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 01:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 01:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-21 00:00:37","window_to":"2026-09-21 01:00:37"} 
[2026-09-21 01:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 00:15:15","window_to":"2026-09-21 01:15:15"} 
[2026-09-21 01:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 01:00:19","page":1} 
[2026-09-21 01:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 01:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 01:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 00:30:17","window_to":"2026-09-21 01:30:18"} 
[2026-09-21 01:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 01:15:16","page":1} 
[2026-09-21 01:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 01:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 01:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 00:45:15","window_to":"2026-09-21 01:45:15"} 
[2026-09-21 01:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 01:30:18","page":1} 
[2026-09-21 01:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 01:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 02:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 01:45:17","page":1} 
[2026-09-21 02:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 01:00:17","window_to":"2026-09-21 02:00:18"} 
[2026-09-21 02:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 02:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 02:00:33] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-21 01:00:33","window_to":"2026-09-21 02:00:33"} 
[2026-09-21 02:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 02:00:17","page":1} 
[2026-09-21 02:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 01:15:16","window_to":"2026-09-21 02:15:16"} 
[2026-09-21 02:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 02:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 02:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 01:30:16","window_to":"2026-09-21 02:30:16"} 
[2026-09-21 02:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 02:15:15","page":1} 
[2026-09-21 02:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 02:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 02:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 01:45:16","window_to":"2026-09-21 02:45:16"} 
[2026-09-21 02:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 02:30:16","page":1} 
[2026-09-21 02:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 02:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 03:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 02:00:16","window_to":"2026-09-21 03:00:16"} 
[2026-09-21 03:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 02:45:16","page":1} 
[2026-09-21 03:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 03:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 03:00:31] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-21 02:00:31","window_to":"2026-09-21 03:00:31"} 
[2026-09-21 03:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 03:00:18","page":1} 
[2026-09-21 03:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 02:15:15","window_to":"2026-09-21 03:15:15"} 
[2026-09-21 03:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 03:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 03:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 02:30:17","window_to":"2026-09-21 03:30:17"} 
[2026-09-21 03:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 03:15:15","page":1} 
[2026-09-21 03:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 03:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 03:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 03:30:17","page":1} 
[2026-09-21 03:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 02:45:14","window_to":"2026-09-21 03:45:15"} 
[2026-09-21 03:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 03:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 04:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 03:45:14","page":1} 
[2026-09-21 04:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 03:00:18","window_to":"2026-09-21 04:00:18"} 
[2026-09-21 04:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 04:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 04:00:33] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-21 03:00:33","window_to":"2026-09-21 04:00:33"} 
[2026-09-21 04:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 03:15:14","window_to":"2026-09-21 04:15:15"} 
[2026-09-21 04:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 04:00:18","page":1} 
[2026-09-21 04:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 04:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 04:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 03:30:16","window_to":"2026-09-21 04:30:16"} 
[2026-09-21 04:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 04:15:15","page":1} 
[2026-09-21 04:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 04:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 04:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 03:45:14","window_to":"2026-09-21 04:45:15"} 
[2026-09-21 04:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 04:30:17","page":1} 
[2026-09-21 04:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 04:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 05:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 04:45:15","page":1} 
[2026-09-21 05:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 04:00:17","window_to":"2026-09-21 05:00:18"} 
[2026-09-21 05:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 05:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 05:00:33] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-21 04:00:32","window_to":"2026-09-21 05:00:32"} 
[2026-09-21 05:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 04:15:14","window_to":"2026-09-21 05:15:14"} 
[2026-09-21 05:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 05:00:17","page":1} 
[2026-09-21 05:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 05:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 05:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 04:30:19","window_to":"2026-09-21 05:30:19"} 
[2026-09-21 05:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 05:15:14","page":1} 
[2026-09-21 05:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 05:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 05:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 05:30:20","page":1} 
[2026-09-21 05:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 04:45:17","window_to":"2026-09-21 05:45:17"} 
[2026-09-21 05:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 05:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 06:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 05:45:17","page":1} 
[2026-09-21 06:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 05:00:17","window_to":"2026-09-21 06:00:17"} 
[2026-09-21 06:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 06:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 06:00:33] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-21 05:00:33","window_to":"2026-09-21 06:00:33"} 
[2026-09-21 06:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 06:00:17","page":1} 
[2026-09-21 06:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 05:15:15","window_to":"2026-09-21 06:15:15"} 
[2026-09-21 06:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 06:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 06:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 06:15:15","page":1} 
[2026-09-21 06:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 05:30:18","window_to":"2026-09-21 06:30:18"} 
[2026-09-21 06:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 06:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 06:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 06:30:17","page":1} 
[2026-09-21 06:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 06:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 06:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 05:45:16","window_to":"2026-09-21 06:45:17"} 
[2026-09-21 07:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 06:45:15","page":1} 
[2026-09-21 07:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 06:00:18","window_to":"2026-09-21 07:00:18"} 
[2026-09-21 07:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 07:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 07:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-21 06:00:34","window_to":"2026-09-21 07:00:34"} 
[2026-09-21 07:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 07:00:18","page":1} 
[2026-09-21 07:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 06:15:14","window_to":"2026-09-21 07:15:14"} 
[2026-09-21 07:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 07:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 07:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 07:15:15","page":1} 
[2026-09-21 07:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 06:30:18","window_to":"2026-09-21 07:30:18"} 
[2026-09-21 07:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 07:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 07:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 07:30:18","page":1} 
[2026-09-21 07:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 06:45:18","window_to":"2026-09-21 07:45:18"} 
[2026-09-21 07:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 07:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 08:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 07:00:17","window_to":"2026-09-21 08:00:17"} 
[2026-09-21 08:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 07:45:17","page":1} 
[2026-09-21 08:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 08:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 08:00:35] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-21 07:00:35","window_to":"2026-09-21 08:00:35"} 
[2026-09-21 08:00:36] local.INFO: Payment reminders queued {"batches":1,"students":1} 
[2026-09-21 08:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 08:00:18","page":1} 
[2026-09-21 08:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 07:15:16","window_to":"2026-09-21 08:15:16"} 
[2026-09-21 08:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 08:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 08:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 08:15:16","page":1} 
[2026-09-21 08:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 07:30:16","window_to":"2026-09-21 08:30:16"} 
[2026-09-21 08:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 08:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 08:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 07:45:18","window_to":"2026-09-21 08:45:18"} 
[2026-09-21 08:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 08:30:16","page":1} 
[2026-09-21 08:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 08:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 09:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 08:00:20","window_to":"2026-09-21 09:00:20"} 
[2026-09-21 09:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 08:45:19","page":1} 
[2026-09-21 09:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 09:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 09:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-21 08:00:38","window_to":"2026-09-21 09:00:38"} 
[2026-09-21 09:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 08:15:17","window_to":"2026-09-21 09:15:17"} 
[2026-09-21 09:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 09:00:20","page":1} 
[2026-09-21 09:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 09:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 09:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 09:15:18","page":1} 
[2026-09-21 09:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 08:30:18","window_to":"2026-09-21 09:30:19"} 
[2026-09-21 09:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 09:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 09:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 08:45:17","window_to":"2026-09-21 09:45:17"} 
[2026-09-21 09:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 09:30:18","page":1} 
[2026-09-21 09:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 09:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 10:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 09:00:20","window_to":"2026-09-21 10:00:20"} 
[2026-09-21 10:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 09:45:18","page":1} 
[2026-09-21 10:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 10:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 10:00:39] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-21 09:00:38","window_to":"2026-09-21 10:00:38"} 
[2026-09-21 10:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 10:00:21","page":1} 
[2026-09-21 10:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 09:15:17","window_to":"2026-09-21 10:15:17"} 
[2026-09-21 10:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 10:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 10:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 10:15:17","page":1} 
[2026-09-21 10:30:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 09:30:21","window_to":"2026-09-21 10:30:21"} 
[2026-09-21 10:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 10:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 10:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 10:30:20","page":1} 
[2026-09-21 10:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 09:45:17","window_to":"2026-09-21 10:45:17"} 
[2026-09-21 10:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 10:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 11:00:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 10:00:22","window_to":"2026-09-21 11:00:22"} 
[2026-09-21 11:00:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 10:45:17","page":1} 
[2026-09-21 11:00:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 11:00:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 11:00:41] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-21 10:00:40","window_to":"2026-09-21 11:00:40"} 
[2026-09-21 11:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 11:00:22","page":1} 
[2026-09-21 11:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 10:15:19","window_to":"2026-09-21 11:15:19"} 
[2026-09-21 11:15:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 11:15:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 11:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 11:15:19","page":1} 
[2026-09-21 11:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 10:30:19","window_to":"2026-09-21 11:30:19"} 
[2026-09-21 11:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 11:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 11:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 10:45:17","window_to":"2026-09-21 11:45:17"} 
[2026-09-21 11:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 11:30:19","page":1} 
[2026-09-21 11:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 11:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 12:00:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 11:00:21","window_to":"2026-09-21 12:00:21"} 
[2026-09-21 12:00:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 11:45:17","page":1} 
[2026-09-21 12:00:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 12:00:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 12:00:42] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-21 11:00:42","window_to":"2026-09-21 12:00:42"} 
[2026-09-21 12:00:43] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_21_12_00_42.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-21 12:00:50] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_21_12_00_42.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-21 12:15:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 12:00:24","page":1} 
[2026-09-21 12:15:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 11:15:20","window_to":"2026-09-21 12:15:20"} 
[2026-09-21 12:15:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 12:15:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 12:30:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 11:30:23","window_to":"2026-09-21 12:30:23"} 
[2026-09-21 12:30:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 12:15:20","page":1} 
[2026-09-21 12:30:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 12:30:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 12:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 12:30:23","page":1} 
[2026-09-21 12:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 11:45:18","window_to":"2026-09-21 12:45:18"} 
[2026-09-21 12:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 12:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 13:00:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 12:45:18","page":1} 
[2026-09-21 13:00:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 12:00:24","window_to":"2026-09-21 13:00:25"} 
[2026-09-21 13:00:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 13:00:27] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 13:00:43] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-21 12:00:43","window_to":"2026-09-21 13:00:43"} 
[2026-09-21 13:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 13:00:24","page":1} 
[2026-09-21 13:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 13:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 13:15:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 12:15:19","window_to":"2026-09-21 13:15:19"} 
[2026-09-21 13:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 13:15:18","page":1} 
[2026-09-21 13:30:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 12:30:21","window_to":"2026-09-21 13:30:21"} 
[2026-09-21 13:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 13:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 13:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 13:30:20","page":1} 
[2026-09-21 13:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 12:45:17","window_to":"2026-09-21 13:45:18"} 
[2026-09-21 13:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 13:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 14:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 13:45:18","page":1} 
[2026-09-21 14:00:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 13:00:21","window_to":"2026-09-21 14:00:21"} 
[2026-09-21 14:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 14:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 14:00:40] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-21 13:00:39","window_to":"2026-09-21 14:00:40"} 
[2026-09-21 14:15:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 13:15:19","window_to":"2026-09-21 14:15:19"} 
[2026-09-21 14:15:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 14:00:21","page":1} 
[2026-09-21 14:15:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 14:15:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 14:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 13:30:19","window_to":"2026-09-21 14:30:19"} 
[2026-09-21 14:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 14:15:20","page":1} 
[2026-09-21 14:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 14:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 14:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 14:30:19","page":1} 
[2026-09-21 14:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 13:45:19","window_to":"2026-09-21 14:45:19"} 
[2026-09-21 14:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 14:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 15:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 14:45:19","page":1} 
[2026-09-21 15:00:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 14:00:22","window_to":"2026-09-21 15:00:22"} 
[2026-09-21 15:00:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 15:00:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 15:00:39] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-21 14:00:39","window_to":"2026-09-21 15:00:39"} 
[2026-09-21 15:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 15:00:22","page":1} 
[2026-09-21 15:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 14:15:19","window_to":"2026-09-21 15:15:19"} 
[2026-09-21 15:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 15:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 15:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 15:15:19","page":1} 
[2026-09-21 15:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 14:30:19","window_to":"2026-09-21 15:30:19"} 
[2026-09-21 15:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 15:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 15:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 14:45:17","window_to":"2026-09-21 15:45:17"} 
[2026-09-21 15:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 15:30:19","page":1} 
[2026-09-21 15:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 15:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 16:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 15:45:18","page":1} 
[2026-09-21 16:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 15:00:20","window_to":"2026-09-21 16:00:21"} 
[2026-09-21 16:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 16:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 16:00:39] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-21 15:00:39","window_to":"2026-09-21 16:00:39"} 
[2026-09-21 16:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 15:15:17","window_to":"2026-09-21 16:15:17"} 
[2026-09-21 16:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 16:00:20","page":1} 
[2026-09-21 16:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 16:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 16:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 15:30:18","window_to":"2026-09-21 16:30:18"} 
[2026-09-21 16:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 16:15:17","page":1} 
[2026-09-21 16:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 16:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 16:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 16:30:19","page":1} 
[2026-09-21 16:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 15:45:17","window_to":"2026-09-21 16:45:17"} 
[2026-09-21 16:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 16:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 17:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 16:45:18","page":1} 
[2026-09-21 17:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 16:00:21","window_to":"2026-09-21 17:00:21"} 
[2026-09-21 17:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 17:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 17:00:39] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-21 16:00:39","window_to":"2026-09-21 17:00:39"} 
[2026-09-21 17:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 17:00:21","page":1} 
[2026-09-21 17:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 16:15:18","window_to":"2026-09-21 17:15:18"} 
[2026-09-21 17:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 17:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 17:20:38] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:20:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:20:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:20:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:20:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:21:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:21:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:22:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:22:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:23:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:23:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:24:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:24:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:25:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:25:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:26:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:26:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:27:34] local.INFO: No files found in student ID card folder {"folder_path":"studentid/26_000001","disk":"local"} 
[2026-09-21 17:27:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:27:37] local.INFO: No FCM tokens found for user {"notification_id":48,"user_id":8} 
[2026-09-21 17:27:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:27:37] local.INFO: No FCM tokens found for user {"notification_id":49,"user_id":2} 
[2026-09-21 17:27:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:27:37] local.INFO: No FCM tokens found for user {"notification_id":50,"user_id":1} 
[2026-09-21 17:27:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:27:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:28:20] local.INFO: Folder deletion completed {"folder_path":"GITIMSDev/uploads/studentid/26_000001","deleted_count":1,"failed_count":0} 
[2026-09-21 17:28:20] local.INFO: Student ID card folder deleted successfully {"folder_path":"GITIMSDev/uploads/studentid/26_000001","disk":"r2"} 
[2026-09-21 17:28:21] local.INFO: Student ID card folder deleted successfully {"folder_path":"GITIMSDev/uploads/studentid/26_000001","disk":"r2"} 
[2026-09-21 17:28:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:28:22] local.INFO: No FCM tokens found for user {"notification_id":51,"user_id":2} 
[2026-09-21 17:28:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:28:22] local.INFO: No FCM tokens found for user {"notification_id":52,"user_id":1} 
[2026-09-21 17:28:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:28:22] local.INFO: No FCM tokens found for user {"notification_id":53,"user_id":2} 
[2026-09-21 17:28:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:28:22] local.INFO: No FCM tokens found for user {"notification_id":54,"user_id":1} 
[2026-09-21 17:28:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:28:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:28:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:28:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:29:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:29:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:30:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 16:30:22","window_to":"2026-09-21 17:30:22"} 
[2026-09-21 17:30:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 17:15:17","page":1} 
[2026-09-21 17:30:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 17:30:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 17:30:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:30:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:31:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:31:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:32:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:32:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:33:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:33:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:34:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:34:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:35:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:35:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:36:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:36:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:37:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:37:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:38:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:38:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:39:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:39:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:40:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:40:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:41:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:41:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:42:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:42:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:43:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:43:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:44:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:44:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 17:30:23","page":1} 
[2026-09-21 17:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 17:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 17:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 16:45:18","window_to":"2026-09-21 17:45:18"} 
[2026-09-21 17:45:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:45:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:46:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:46:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:47:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:47:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:50:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:50:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:51:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:51:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:52:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:52:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:53:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:53:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:54:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:54:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:55:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 17:55:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 18:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 17:45:17","page":1} 
[2026-09-21 18:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 17:00:20","window_to":"2026-09-21 18:00:20"} 
[2026-09-21 18:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 18:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 18:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-21 17:00:38","window_to":"2026-09-21 18:00:38"} 
[2026-09-21 18:08:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 18:08:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 18:09:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-21 18:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 18:00:21","page":1} 
[2026-09-21 18:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 17:15:18","window_to":"2026-09-21 18:15:18"} 
[2026-09-21 18:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 18:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 18:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 18:15:18","page":1} 
[2026-09-21 18:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 17:30:20","window_to":"2026-09-21 18:30:20"} 
[2026-09-21 18:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 18:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 18:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 18:30:19","page":1} 
[2026-09-21 18:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 17:45:19","window_to":"2026-09-21 18:45:19"} 
[2026-09-21 18:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 18:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 19:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 18:00:20","window_to":"2026-09-21 19:00:20"} 
[2026-09-21 19:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 18:45:19","page":1} 
[2026-09-21 19:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 19:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 19:00:39] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-21 18:00:38","window_to":"2026-09-21 19:00:38"} 
[2026-09-21 19:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 18:15:17","window_to":"2026-09-21 19:15:18"} 
[2026-09-21 19:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 19:00:21","page":1} 
[2026-09-21 19:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 19:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 19:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 18:30:18","window_to":"2026-09-21 19:30:18"} 
[2026-09-21 19:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 19:15:18","page":1} 
[2026-09-21 19:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 19:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 19:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 19:30:19","page":1} 
[2026-09-21 19:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 18:45:18","window_to":"2026-09-21 19:45:18"} 
[2026-09-21 19:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 19:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 20:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 19:00:20","window_to":"2026-09-21 20:00:20"} 
[2026-09-21 20:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 19:45:18","page":1} 
[2026-09-21 20:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 20:00:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 20:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-21 19:00:38","window_to":"2026-09-21 20:00:38"} 
[2026-09-21 20:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 19:15:17","window_to":"2026-09-21 20:15:17"} 
[2026-09-21 20:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 20:00:21","page":1} 
[2026-09-21 20:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 20:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 20:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 20:15:17","page":1} 
[2026-09-21 20:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 19:30:19","window_to":"2026-09-21 20:30:19"} 
[2026-09-21 20:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 20:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 20:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 19:45:17","window_to":"2026-09-21 20:45:17"} 
[2026-09-21 20:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 20:30:19","page":1} 
[2026-09-21 20:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 20:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 21:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 20:45:17","page":1} 
[2026-09-21 21:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 20:00:20","window_to":"2026-09-21 21:00:20"} 
[2026-09-21 21:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 21:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 21:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-21 20:00:38","window_to":"2026-09-21 21:00:38"} 
[2026-09-21 21:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 20:15:17","window_to":"2026-09-21 21:15:17"} 
[2026-09-21 21:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 21:00:20","page":1} 
[2026-09-21 21:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 21:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 21:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 20:30:19","window_to":"2026-09-21 21:30:19"} 
[2026-09-21 21:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 21:15:19","page":1} 
[2026-09-21 21:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 21:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 21:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 20:45:15","window_to":"2026-09-21 21:45:15"} 
[2026-09-21 21:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 21:30:20","page":1} 
[2026-09-21 21:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 21:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 22:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 21:00:18","window_to":"2026-09-21 22:00:18"} 
[2026-09-21 22:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 21:45:15","page":1} 
[2026-09-21 22:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 22:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 22:00:35] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-21 21:00:35","window_to":"2026-09-21 22:00:35"} 
[2026-09-21 22:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 22:00:19","page":1} 
[2026-09-21 22:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 21:15:19","window_to":"2026-09-21 22:15:19"} 
[2026-09-21 22:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 22:15:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 22:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 21:30:19","window_to":"2026-09-21 22:30:19"} 
[2026-09-21 22:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 22:15:19","page":1} 
[2026-09-21 22:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 22:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 22:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 21:45:16","window_to":"2026-09-21 22:45:16"} 
[2026-09-21 22:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 22:30:20","page":1} 
[2026-09-21 22:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 22:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 23:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 22:45:17","page":1} 
[2026-09-21 23:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 22:00:20","window_to":"2026-09-21 23:00:20"} 
[2026-09-21 23:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 23:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 23:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-21 22:00:36","window_to":"2026-09-21 23:00:36"} 
[2026-09-21 23:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 22:15:16","window_to":"2026-09-21 23:15:16"} 
[2026-09-21 23:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 23:00:20","page":1} 
[2026-09-21 23:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 23:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 23:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 23:15:17","page":1} 
[2026-09-21 23:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 22:30:17","window_to":"2026-09-21 23:30:17"} 
[2026-09-21 23:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 23:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-21 23:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 22:45:17","window_to":"2026-09-21 23:45:17"} 
[2026-09-21 23:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 23:30:17","page":1} 
[2026-09-21 23:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-21 23:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 00:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 23:00:19","window_to":"2026-09-22 00:00:19"} 
[2026-09-22 00:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-21 23:45:18","page":1} 
[2026-09-22 00:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 00:00:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 00:00:41] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-21 23:00:40","window_to":"2026-09-22 00:00:40"} 
[2026-09-22 00:00:41] local.INFO: Student payment status check queued {"batches":1,"students":1} 
[2026-09-22 00:00:41] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_22_00_00_41.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-22 00:00:44] local.INFO: Student payment status cron evaluated {"student_id":5,"admission_no":"26/000001","outstanding_amount":24000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-22 00:00:50] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_22_00_00_41.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-22 00:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 23:15:18","window_to":"2026-09-22 00:15:18"} 
[2026-09-22 00:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 00:00:21","page":1} 
[2026-09-22 00:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 00:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 00:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 00:15:19","page":1} 
[2026-09-22 00:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 23:30:19","window_to":"2026-09-22 00:30:19"} 
[2026-09-22 00:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 00:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 00:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-21 23:45:17","window_to":"2026-09-22 00:45:17"} 
[2026-09-22 00:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 00:30:19","page":1} 
[2026-09-22 00:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 00:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 01:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 00:45:18","page":1} 
[2026-09-22 01:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 00:00:18","window_to":"2026-09-22 01:00:19"} 
[2026-09-22 01:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 01:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 01:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-22 00:00:36","window_to":"2026-09-22 01:00:36"} 
[2026-09-22 01:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 01:00:18","page":1} 
[2026-09-22 01:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 00:15:17","window_to":"2026-09-22 01:15:17"} 
[2026-09-22 01:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 01:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 01:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 01:15:17","page":1} 
[2026-09-22 01:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 00:30:17","window_to":"2026-09-22 01:30:18"} 
[2026-09-22 01:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 01:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 01:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 00:45:17","window_to":"2026-09-22 01:45:17"} 
[2026-09-22 01:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 01:30:18","page":1} 
[2026-09-22 01:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 01:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 02:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 01:00:18","window_to":"2026-09-22 02:00:18"} 
[2026-09-22 02:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 01:45:17","page":1} 
[2026-09-22 02:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 02:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 02:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-22 01:00:34","window_to":"2026-09-22 02:00:34"} 
[2026-09-22 02:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 01:15:17","window_to":"2026-09-22 02:15:17"} 
[2026-09-22 02:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 02:00:18","page":1} 
[2026-09-22 02:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 02:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 02:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 01:30:18","window_to":"2026-09-22 02:30:19"} 
[2026-09-22 02:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 02:15:18","page":1} 
[2026-09-22 02:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 02:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 02:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 01:45:18","window_to":"2026-09-22 02:45:18"} 
[2026-09-22 02:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 02:30:19","page":1} 
[2026-09-22 02:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 02:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 03:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 02:00:18","window_to":"2026-09-22 03:00:18"} 
[2026-09-22 03:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 02:45:18","page":1} 
[2026-09-22 03:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 03:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 03:00:35] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-22 02:00:35","window_to":"2026-09-22 03:00:35"} 
[2026-09-22 03:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 03:00:19","page":1} 
[2026-09-22 03:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 02:15:16","window_to":"2026-09-22 03:15:16"} 
[2026-09-22 03:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 03:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 03:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 03:15:16","page":1} 
[2026-09-22 03:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 02:30:17","window_to":"2026-09-22 03:30:17"} 
[2026-09-22 03:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 03:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 03:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 02:45:16","window_to":"2026-09-22 03:45:17"} 
[2026-09-22 03:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 03:30:17","page":1} 
[2026-09-22 03:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 03:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 04:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 03:45:17","page":1} 
[2026-09-22 04:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 03:00:19","window_to":"2026-09-22 04:00:19"} 
[2026-09-22 04:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 04:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 04:00:35] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-22 03:00:35","window_to":"2026-09-22 04:00:35"} 
[2026-09-22 04:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 03:15:15","window_to":"2026-09-22 04:15:15"} 
[2026-09-22 04:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 04:00:18","page":1} 
[2026-09-22 04:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 04:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 04:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 03:30:17","window_to":"2026-09-22 04:30:17"} 
[2026-09-22 04:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 04:15:16","page":1} 
[2026-09-22 04:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 04:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 04:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 03:45:16","window_to":"2026-09-22 04:45:16"} 
[2026-09-22 04:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 04:30:18","page":1} 
[2026-09-22 04:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 04:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 05:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 04:00:17","window_to":"2026-09-22 05:00:17"} 
[2026-09-22 05:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 04:45:16","page":1} 
[2026-09-22 05:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 05:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 05:00:33] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-22 04:00:33","window_to":"2026-09-22 05:00:33"} 
[2026-09-22 05:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 05:00:18","page":1} 
[2026-09-22 05:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 04:15:16","window_to":"2026-09-22 05:15:17"} 
[2026-09-22 05:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 05:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 05:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 05:15:17","page":1} 
[2026-09-22 05:30:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 04:30:20","window_to":"2026-09-22 05:30:20"} 
[2026-09-22 05:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 05:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 05:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 04:45:16","window_to":"2026-09-22 05:45:17"} 
[2026-09-22 05:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 05:30:20","page":1} 
[2026-09-22 05:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 05:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 06:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 05:00:18","window_to":"2026-09-22 06:00:18"} 
[2026-09-22 06:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 05:45:17","page":1} 
[2026-09-22 06:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 06:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 06:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-22 05:00:34","window_to":"2026-09-22 06:00:34"} 
[2026-09-22 06:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 06:00:19","page":1} 
[2026-09-22 06:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 05:15:16","window_to":"2026-09-22 06:15:16"} 
[2026-09-22 06:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 06:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 06:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 05:30:19","window_to":"2026-09-22 06:30:19"} 
[2026-09-22 06:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 06:15:16","page":1} 
[2026-09-22 06:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 06:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 06:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 06:30:20","page":1} 
[2026-09-22 06:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 05:45:17","window_to":"2026-09-22 06:45:18"} 
[2026-09-22 06:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 06:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 07:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 06:00:20","window_to":"2026-09-22 07:00:20"} 
[2026-09-22 07:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 06:45:18","page":1} 
[2026-09-22 07:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 07:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 07:00:37] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-22 06:00:36","window_to":"2026-09-22 07:00:37"} 
[2026-09-22 07:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 07:00:21","page":1} 
[2026-09-22 07:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 06:15:17","window_to":"2026-09-22 07:15:18"} 
[2026-09-22 07:15:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 07:15:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 07:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 06:30:18","window_to":"2026-09-22 07:30:18"} 
[2026-09-22 07:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 07:15:18","page":1} 
[2026-09-22 07:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 07:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 07:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 07:30:18","page":1} 
[2026-09-22 07:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 06:45:17","window_to":"2026-09-22 07:45:17"} 
[2026-09-22 07:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 07:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 08:00:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 07:00:21","window_to":"2026-09-22 08:00:22"} 
[2026-09-22 08:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 07:45:17","page":1} 
[2026-09-22 08:00:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 08:00:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 08:00:43] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-22 07:00:43","window_to":"2026-09-22 08:00:43"} 
[2026-09-22 08:00:43] local.INFO: Payment reminders queued {"batches":1,"students":1} 
[2026-09-22 08:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 07:15:18","window_to":"2026-09-22 08:15:18"} 
[2026-09-22 08:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 08:00:22","page":1} 
[2026-09-22 08:15:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 08:15:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 08:30:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 07:30:20","window_to":"2026-09-22 08:30:20"} 
[2026-09-22 08:30:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 08:15:19","page":1} 
[2026-09-22 08:30:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 08:30:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 08:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 08:30:21","page":1} 
[2026-09-22 08:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 07:45:18","window_to":"2026-09-22 08:45:18"} 
[2026-09-22 08:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 08:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 09:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 08:45:18","page":1} 
[2026-09-22 09:00:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 08:00:23","window_to":"2026-09-22 09:00:23"} 
[2026-09-22 09:00:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 09:00:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 09:00:42] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-22 08:00:41","window_to":"2026-09-22 09:00:41"} 
[2026-09-22 09:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 08:15:18","window_to":"2026-09-22 09:15:18"} 
[2026-09-22 09:15:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 09:00:22","page":1} 
[2026-09-22 09:15:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 09:15:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 09:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 08:30:19","window_to":"2026-09-22 09:30:19"} 
[2026-09-22 09:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 09:15:20","page":1} 
[2026-09-22 09:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 09:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 09:45:38] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 08:45:37","window_to":"2026-09-22 09:45:37"} 
[2026-09-22 09:45:38] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 09:30:20","page":1} 
[2026-09-22 09:45:42] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 09:45:42] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 10:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 09:45:38","page":1} 
[2026-09-22 10:00:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 09:00:22","window_to":"2026-09-22 10:00:22"} 
[2026-09-22 10:00:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 10:00:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 10:00:40] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-22 09:00:40","window_to":"2026-09-22 10:00:40"} 
[2026-09-22 10:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 09:15:18","window_to":"2026-09-22 10:15:18"} 
[2026-09-22 10:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 10:00:22","page":1} 
[2026-09-22 10:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 10:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 10:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 10:15:19","page":1} 
[2026-09-22 10:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 09:30:19","window_to":"2026-09-22 10:30:19"} 
[2026-09-22 10:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 10:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 10:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 10:30:19","page":1} 
[2026-09-22 10:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 09:45:19","window_to":"2026-09-22 10:45:19"} 
[2026-09-22 10:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 10:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 10:48:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-22 10:48:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-22 10:48:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-22 10:49:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-22 10:49:43] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-22 11:00:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 10:45:19","page":1} 
[2026-09-22 11:00:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 10:00:24","window_to":"2026-09-22 11:00:24"} 
[2026-09-22 11:00:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 11:00:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 11:00:43] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-22 10:00:42","window_to":"2026-09-22 11:00:42"} 
[2026-09-22 11:15:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 10:15:20","window_to":"2026-09-22 11:15:20"} 
[2026-09-22 11:15:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 11:00:24","page":1} 
[2026-09-22 11:15:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 11:15:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 11:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 11:15:21","page":1} 
[2026-09-22 11:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 10:30:20","window_to":"2026-09-22 11:30:20"} 
[2026-09-22 11:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 11:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 11:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 11:30:20","page":1} 
[2026-09-22 11:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 10:45:19","window_to":"2026-09-22 11:45:19"} 
[2026-09-22 11:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 11:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 12:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 11:45:19","page":1} 
[2026-09-22 12:00:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 11:00:22","window_to":"2026-09-22 12:00:23"} 
[2026-09-22 12:00:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 12:00:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 12:00:42] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_22_12_00_42.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-22 12:00:43] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-22 11:00:42","window_to":"2026-09-22 12:00:42"} 
[2026-09-22 12:00:49] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_22_12_00_42.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-22 12:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 12:00:22","page":1} 
[2026-09-22 12:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 11:15:18","window_to":"2026-09-22 12:15:19"} 
[2026-09-22 12:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 12:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 12:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 12:15:18","page":1} 
[2026-09-22 12:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 11:30:19","window_to":"2026-09-22 12:30:20"} 
[2026-09-22 12:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 12:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 12:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 12:30:19","page":1} 
[2026-09-22 12:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 11:45:18","window_to":"2026-09-22 12:45:19"} 
[2026-09-22 12:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 12:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 13:00:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 12:45:19","page":1} 
[2026-09-22 13:00:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 12:00:23","window_to":"2026-09-22 13:00:23"} 
[2026-09-22 13:00:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 13:00:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 13:00:43] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-22 12:00:42","window_to":"2026-09-22 13:00:42"} 
[2026-09-22 13:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 13:00:23","page":1} 
[2026-09-22 13:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 12:15:19","window_to":"2026-09-22 13:15:19"} 
[2026-09-22 13:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 13:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 13:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 12:30:20","window_to":"2026-09-22 13:30:20"} 
[2026-09-22 13:30:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 13:15:19","page":1} 
[2026-09-22 13:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 13:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 13:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 12:45:17","window_to":"2026-09-22 13:45:17"} 
[2026-09-22 13:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 13:30:21","page":1} 
[2026-09-22 13:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 13:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 14:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 13:00:20","window_to":"2026-09-22 14:00:20"} 
[2026-09-22 14:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 13:45:18","page":1} 
[2026-09-22 14:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 14:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 14:00:37] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-22 13:00:37","window_to":"2026-09-22 14:00:37"} 
[2026-09-22 14:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 13:15:18","window_to":"2026-09-22 14:15:18"} 
[2026-09-22 14:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 14:00:21","page":1} 
[2026-09-22 14:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 14:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 14:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 13:30:18","window_to":"2026-09-22 14:30:18"} 
[2026-09-22 14:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 14:15:19","page":1} 
[2026-09-22 14:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 14:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 14:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 13:45:18","window_to":"2026-09-22 14:45:18"} 
[2026-09-22 14:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 14:30:19","page":1} 
[2026-09-22 14:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 14:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 15:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 14:45:19","page":1} 
[2026-09-22 15:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 14:00:20","window_to":"2026-09-22 15:00:21"} 
[2026-09-22 15:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 15:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 15:00:39] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-22 14:00:39","window_to":"2026-09-22 15:00:39"} 
[2026-09-22 15:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 15:00:20","page":1} 
[2026-09-22 15:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 15:15:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 14:15:20","window_to":"2026-09-22 15:15:20"} 
[2026-09-22 15:15:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 15:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 14:30:20","window_to":"2026-09-22 15:30:20"} 
[2026-09-22 15:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 15:15:19","page":1} 
[2026-09-22 15:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 15:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 15:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 15:30:20","page":1} 
[2026-09-22 15:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 14:45:18","window_to":"2026-09-22 15:45:18"} 
[2026-09-22 15:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 15:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 16:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 15:00:19","window_to":"2026-09-22 16:00:19"} 
[2026-09-22 16:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 15:45:18","page":1} 
[2026-09-22 16:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 16:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 16:00:35] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-22 15:00:35","window_to":"2026-09-22 16:00:35"} 
[2026-09-22 16:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 15:15:18","window_to":"2026-09-22 16:15:18"} 
[2026-09-22 16:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 16:00:20","page":1} 
[2026-09-22 16:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 16:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 16:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 15:30:19","window_to":"2026-09-22 16:30:19"} 
[2026-09-22 16:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 16:15:18","page":1} 
[2026-09-22 16:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 16:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 16:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 15:45:18","window_to":"2026-09-22 16:45:18"} 
[2026-09-22 16:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 16:30:20","page":1} 
[2026-09-22 16:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 16:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 17:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 16:45:19","page":1} 
[2026-09-22 17:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 16:00:18","window_to":"2026-09-22 17:00:19"} 
[2026-09-22 17:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 17:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 17:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-22 16:00:34","window_to":"2026-09-22 17:00:34"} 
[2026-09-22 17:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 16:15:16","window_to":"2026-09-22 17:15:16"} 
[2026-09-22 17:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 17:00:19","page":1} 
[2026-09-22 17:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 17:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 17:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 16:30:17","window_to":"2026-09-22 17:30:17"} 
[2026-09-22 17:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 17:15:17","page":1} 
[2026-09-22 17:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 17:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 17:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 16:45:16","window_to":"2026-09-22 17:45:16"} 
[2026-09-22 17:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 17:30:18","page":1} 
[2026-09-22 17:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 17:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 18:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 17:45:17","page":1} 
[2026-09-22 18:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 17:00:19","window_to":"2026-09-22 18:00:19"} 
[2026-09-22 18:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 18:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 18:00:35] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-22 17:00:35","window_to":"2026-09-22 18:00:35"} 
[2026-09-22 18:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 17:15:17","window_to":"2026-09-22 18:15:18"} 
[2026-09-22 18:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 18:00:19","page":1} 
[2026-09-22 18:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 18:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 18:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 17:30:19","window_to":"2026-09-22 18:30:19"} 
[2026-09-22 18:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 18:15:18","page":1} 
[2026-09-22 18:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 18:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 18:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 18:30:20","page":1} 
[2026-09-22 18:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 17:45:17","window_to":"2026-09-22 18:45:17"} 
[2026-09-22 18:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 18:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 19:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 18:00:19","window_to":"2026-09-22 19:00:19"} 
[2026-09-22 19:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 18:45:17","page":1} 
[2026-09-22 19:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 19:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 19:00:37] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-22 18:00:37","window_to":"2026-09-22 19:00:37"} 
[2026-09-22 19:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 19:00:20","page":1} 
[2026-09-22 19:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 18:15:17","window_to":"2026-09-22 19:15:17"} 
[2026-09-22 19:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 19:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 19:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 19:15:16","page":1} 
[2026-09-22 19:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 18:30:19","window_to":"2026-09-22 19:30:19"} 
[2026-09-22 19:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 19:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 19:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 18:45:17","window_to":"2026-09-22 19:45:18"} 
[2026-09-22 19:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 19:30:19","page":1} 
[2026-09-22 19:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 19:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 20:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 19:45:18","page":1} 
[2026-09-22 20:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 19:00:21","window_to":"2026-09-22 20:00:21"} 
[2026-09-22 20:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 20:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 20:00:37] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-22 19:00:37","window_to":"2026-09-22 20:00:37"} 
[2026-09-22 20:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 20:00:20","page":1} 
[2026-09-22 20:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 19:15:16","window_to":"2026-09-22 20:15:16"} 
[2026-09-22 20:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 20:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 20:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 19:30:17","window_to":"2026-09-22 20:30:17"} 
[2026-09-22 20:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 20:15:16","page":1} 
[2026-09-22 20:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 20:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 20:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 20:30:18","page":1} 
[2026-09-22 20:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 19:45:16","window_to":"2026-09-22 20:45:17"} 
[2026-09-22 20:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 20:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 21:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 20:45:17","page":1} 
[2026-09-22 21:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 20:00:19","window_to":"2026-09-22 21:00:19"} 
[2026-09-22 21:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 21:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 21:00:35] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-22 20:00:34","window_to":"2026-09-22 21:00:35"} 
[2026-09-22 21:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 20:15:16","window_to":"2026-09-22 21:15:16"} 
[2026-09-22 21:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 21:00:19","page":1} 
[2026-09-22 21:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 21:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 21:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 20:30:17","window_to":"2026-09-22 21:30:17"} 
[2026-09-22 21:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 21:15:17","page":1} 
[2026-09-22 21:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 21:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 21:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 21:30:18","page":1} 
[2026-09-22 21:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 20:45:18","window_to":"2026-09-22 21:45:18"} 
[2026-09-22 21:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 21:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 22:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 21:00:19","window_to":"2026-09-22 22:00:19"} 
[2026-09-22 22:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 21:45:18","page":1} 
[2026-09-22 22:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 22:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 22:00:35] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-22 21:00:34","window_to":"2026-09-22 22:00:34"} 
[2026-09-22 22:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 22:00:20","page":1} 
[2026-09-22 22:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 21:15:16","window_to":"2026-09-22 22:15:16"} 
[2026-09-22 22:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 22:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 22:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 22:15:16","page":1} 
[2026-09-22 22:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 21:30:19","window_to":"2026-09-22 22:30:19"} 
[2026-09-22 22:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 22:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 22:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 21:45:16","window_to":"2026-09-22 22:45:16"} 
[2026-09-22 22:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 22:30:18","page":1} 
[2026-09-22 22:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 22:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 23:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 22:00:18","window_to":"2026-09-22 23:00:18"} 
[2026-09-22 23:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 22:45:17","page":1} 
[2026-09-22 23:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 23:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 23:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-22 22:00:34","window_to":"2026-09-22 23:00:34"} 
[2026-09-22 23:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 23:00:20","page":1} 
[2026-09-22 23:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 23:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 22:15:15","window_to":"2026-09-22 23:15:16"} 
[2026-09-22 23:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 23:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 22:30:18","window_to":"2026-09-22 23:30:18"} 
[2026-09-22 23:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 23:15:15","page":1} 
[2026-09-22 23:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 23:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-22 23:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 22:45:15","window_to":"2026-09-22 23:45:15"} 
[2026-09-22 23:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 23:30:19","page":1} 
[2026-09-22 23:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-22 23:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 00:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-22 23:45:17","page":1} 
[2026-09-23 00:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 23:00:18","window_to":"2026-09-23 00:00:18"} 
[2026-09-23 00:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 00:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 00:00:37] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_23_00_00_36.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-23 00:00:37] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-22 23:00:36","window_to":"2026-09-23 00:00:36"} 
[2026-09-23 00:00:37] local.INFO: Student payment status check queued {"batches":1,"students":1} 
[2026-09-23 00:00:42] local.INFO: Student payment status cron evaluated {"student_id":5,"admission_no":"26/000001","outstanding_amount":24000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-23 00:00:45] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_23_00_00_36.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-23 00:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 23:15:15","window_to":"2026-09-23 00:15:16"} 
[2026-09-23 00:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 00:00:18","page":1} 
[2026-09-23 00:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 00:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 00:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 23:30:17","window_to":"2026-09-23 00:30:17"} 
[2026-09-23 00:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 00:15:16","page":1} 
[2026-09-23 00:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 00:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 00:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 00:30:17","page":1} 
[2026-09-23 00:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-22 23:45:16","window_to":"2026-09-23 00:45:16"} 
[2026-09-23 00:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 00:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 01:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 00:45:16","page":1} 
[2026-09-23 01:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 00:00:20","window_to":"2026-09-23 01:00:20"} 
[2026-09-23 01:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 01:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 01:00:39] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-23 00:00:39","window_to":"2026-09-23 01:00:39"} 
[2026-09-23 01:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 01:00:20","page":1} 
[2026-09-23 01:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 00:15:18","window_to":"2026-09-23 01:15:18"} 
[2026-09-23 01:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 01:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 01:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 00:30:18","window_to":"2026-09-23 01:30:18"} 
[2026-09-23 01:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 01:15:18","page":1} 
[2026-09-23 01:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 01:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 01:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 01:30:19","page":1} 
[2026-09-23 01:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 00:45:17","window_to":"2026-09-23 01:45:17"} 
[2026-09-23 01:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 01:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 02:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 01:45:17","page":1} 
[2026-09-23 02:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 01:00:18","window_to":"2026-09-23 02:00:19"} 
[2026-09-23 02:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 02:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 02:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-23 01:00:34","window_to":"2026-09-23 02:00:34"} 
[2026-09-23 02:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 01:15:14","window_to":"2026-09-23 02:15:15"} 
[2026-09-23 02:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 02:00:18","page":1} 
[2026-09-23 02:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 02:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 02:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 02:15:15","page":1} 
[2026-09-23 02:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 01:30:18","window_to":"2026-09-23 02:30:18"} 
[2026-09-23 02:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 02:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 02:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 02:30:18","page":1} 
[2026-09-23 02:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 01:45:18","window_to":"2026-09-23 02:45:18"} 
[2026-09-23 02:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 02:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 03:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 02:45:18","page":1} 
[2026-09-23 03:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 02:00:17","window_to":"2026-09-23 03:00:17"} 
[2026-09-23 03:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 03:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 03:00:31] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-23 02:00:31","window_to":"2026-09-23 03:00:31"} 
[2026-09-23 03:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 02:15:14","window_to":"2026-09-23 03:15:14"} 
[2026-09-23 03:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 03:00:17","page":1} 
[2026-09-23 03:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 03:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 03:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 03:15:15","page":1} 
[2026-09-23 03:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 02:30:16","window_to":"2026-09-23 03:30:16"} 
[2026-09-23 03:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 03:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 03:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 03:30:16","page":1} 
[2026-09-23 03:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 02:45:16","window_to":"2026-09-23 03:45:16"} 
[2026-09-23 03:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 03:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 04:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 03:00:16","window_to":"2026-09-23 04:00:16"} 
[2026-09-23 04:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 03:45:16","page":1} 
[2026-09-23 04:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 04:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 04:00:31] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-23 03:00:30","window_to":"2026-09-23 04:00:30"} 
[2026-09-23 04:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 04:00:17","page":1} 
[2026-09-23 04:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 03:15:14","window_to":"2026-09-23 04:15:14"} 
[2026-09-23 04:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 04:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 04:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 04:15:15","page":1} 
[2026-09-23 04:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 03:30:18","window_to":"2026-09-23 04:30:18"} 
[2026-09-23 04:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 04:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 04:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 04:30:17","page":1} 
[2026-09-23 04:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 03:45:15","window_to":"2026-09-23 04:45:16"} 
[2026-09-23 04:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 04:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 05:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 04:00:16","window_to":"2026-09-23 05:00:16"} 
[2026-09-23 05:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 04:45:16","page":1} 
[2026-09-23 05:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 05:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 05:00:31] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-23 04:00:31","window_to":"2026-09-23 05:00:31"} 
[2026-09-23 05:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 04:15:14","window_to":"2026-09-23 05:15:14"} 
[2026-09-23 05:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 05:00:17","page":1} 
[2026-09-23 05:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 05:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 05:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 05:15:15","page":1} 
[2026-09-23 05:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 04:30:20","window_to":"2026-09-23 05:30:20"} 
[2026-09-23 05:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 05:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 05:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 05:30:20","page":1} 
[2026-09-23 05:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 04:45:15","window_to":"2026-09-23 05:45:15"} 
[2026-09-23 05:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 05:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 06:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 05:45:15","page":1} 
[2026-09-23 06:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 05:00:18","window_to":"2026-09-23 06:00:18"} 
[2026-09-23 06:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 06:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 06:00:32] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-23 05:00:32","window_to":"2026-09-23 06:00:32"} 
[2026-09-23 06:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 06:00:18","page":1} 
[2026-09-23 06:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 05:15:15","window_to":"2026-09-23 06:15:15"} 
[2026-09-23 06:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 06:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 06:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 05:30:18","window_to":"2026-09-23 06:30:18"} 
[2026-09-23 06:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 06:15:15","page":1} 
[2026-09-23 06:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 06:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 06:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 06:30:19","page":1} 
[2026-09-23 06:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 05:45:15","window_to":"2026-09-23 06:45:16"} 
[2026-09-23 06:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 06:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 07:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 06:45:15","page":1} 
[2026-09-23 07:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 06:00:21","window_to":"2026-09-23 07:00:21"} 
[2026-09-23 07:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 07:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 07:00:37] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-23 06:00:36","window_to":"2026-09-23 07:00:36"} 
[2026-09-23 07:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 07:00:21","page":1} 
[2026-09-23 07:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 07:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 07:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 06:15:17","window_to":"2026-09-23 07:15:17"} 
[2026-09-23 07:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 07:15:15","page":1} 
[2026-09-23 07:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 06:30:19","window_to":"2026-09-23 07:30:19"} 
[2026-09-23 07:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 07:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 07:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 06:45:16","window_to":"2026-09-23 07:45:16"} 
[2026-09-23 07:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 07:30:19","page":1} 
[2026-09-23 07:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 07:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 08:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 07:00:19","window_to":"2026-09-23 08:00:20"} 
[2026-09-23 08:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 07:45:16","page":1} 
[2026-09-23 08:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 08:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 08:00:37] local.INFO: Payment reminders queued {"batches":1,"students":1} 
[2026-09-23 08:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-23 07:00:37","window_to":"2026-09-23 08:00:37"} 
[2026-09-23 08:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 07:15:17","window_to":"2026-09-23 08:15:17"} 
[2026-09-23 08:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 08:00:20","page":1} 
[2026-09-23 08:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 08:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 08:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 08:15:18","page":1} 
[2026-09-23 08:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 07:30:18","window_to":"2026-09-23 08:30:19"} 
[2026-09-23 08:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 08:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 08:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 08:30:18","page":1} 
[2026-09-23 08:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 07:45:14","window_to":"2026-09-23 08:45:14"} 
[2026-09-23 08:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 08:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 09:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 08:45:14","page":1} 
[2026-09-23 09:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 08:00:19","window_to":"2026-09-23 09:00:19"} 
[2026-09-23 09:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 09:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 09:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-23 08:00:33","window_to":"2026-09-23 09:00:33"} 
[2026-09-23 09:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 09:00:18","page":1} 
[2026-09-23 09:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 09:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 09:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 08:15:13","window_to":"2026-09-23 09:15:13"} 
[2026-09-23 09:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 08:30:15","window_to":"2026-09-23 09:30:15"} 
[2026-09-23 09:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 09:15:12","page":1} 
[2026-09-23 09:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 09:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 09:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 09:30:15","page":1} 
[2026-09-23 09:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 08:45:13","window_to":"2026-09-23 09:45:14"} 
[2026-09-23 09:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 09:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 10:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 09:45:13","page":1} 
[2026-09-23 10:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 09:00:15","window_to":"2026-09-23 10:00:15"} 
[2026-09-23 10:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 10:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 10:00:29] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-23 09:00:28","window_to":"2026-09-23 10:00:28"} 
[2026-09-23 10:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 10:00:14","page":1} 
[2026-09-23 10:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 09:15:14","window_to":"2026-09-23 10:15:15"} 
[2026-09-23 10:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 10:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 10:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 10:15:14","page":1} 
[2026-09-23 10:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 09:30:14","window_to":"2026-09-23 10:30:14"} 
[2026-09-23 10:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 10:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 10:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 10:30:14","page":1} 
[2026-09-23 10:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 09:45:14","window_to":"2026-09-23 10:45:14"} 
[2026-09-23 10:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 10:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 11:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 10:00:17","window_to":"2026-09-23 11:00:17"} 
[2026-09-23 11:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 10:45:14","page":1} 
[2026-09-23 11:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 11:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 11:00:31] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-23 10:00:31","window_to":"2026-09-23 11:00:31"} 
[2026-09-23 11:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 10:15:14","window_to":"2026-09-23 11:15:14"} 
[2026-09-23 11:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 11:00:18","page":1} 
[2026-09-23 11:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 11:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 11:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 11:15:14","page":1} 
[2026-09-23 11:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 10:30:15","window_to":"2026-09-23 11:30:15"} 
[2026-09-23 11:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 11:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 11:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 11:30:14","page":1} 
[2026-09-23 11:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 11:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 10:45:15","window_to":"2026-09-23 11:45:15"} 
[2026-09-23 11:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 12:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 11:45:14","page":1} 
[2026-09-23 12:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 11:00:18","window_to":"2026-09-23 12:00:19"} 
[2026-09-23 12:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 12:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 12:00:33] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_23_12_00_32.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-23 12:00:33] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-23 11:00:32","window_to":"2026-09-23 12:00:32"} 
[2026-09-23 12:00:38] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_23_12_00_32.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-23 12:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 11:15:15","window_to":"2026-09-23 12:15:15"} 
[2026-09-23 12:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 12:00:18","page":1} 
[2026-09-23 12:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 12:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 12:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 11:30:17","window_to":"2026-09-23 12:30:17"} 
[2026-09-23 12:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 12:15:16","page":1} 
[2026-09-23 12:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 12:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 12:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 11:45:15","window_to":"2026-09-23 12:45:16"} 
[2026-09-23 12:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 12:30:17","page":1} 
[2026-09-23 12:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 12:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 13:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 12:00:18","window_to":"2026-09-23 13:00:18"} 
[2026-09-23 13:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 12:45:16","page":1} 
[2026-09-23 13:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 13:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 13:00:31] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-23 12:00:31","window_to":"2026-09-23 13:00:31"} 
[2026-09-23 13:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 13:00:19","page":1} 
[2026-09-23 13:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 12:15:16","window_to":"2026-09-23 13:15:16"} 
[2026-09-23 13:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 13:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 13:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 13:15:16","page":1} 
[2026-09-23 13:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 12:30:17","window_to":"2026-09-23 13:30:18"} 
[2026-09-23 13:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 13:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 13:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 12:45:15","window_to":"2026-09-23 13:45:15"} 
[2026-09-23 13:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 13:30:17","page":1} 
[2026-09-23 13:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 13:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 14:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 13:45:16","page":1} 
[2026-09-23 14:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 13:00:18","window_to":"2026-09-23 14:00:18"} 
[2026-09-23 14:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 14:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 14:00:32] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-23 13:00:32","window_to":"2026-09-23 14:00:32"} 
[2026-09-23 14:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 14:00:18","page":1} 
[2026-09-23 14:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 13:15:13","window_to":"2026-09-23 14:15:13"} 
[2026-09-23 14:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 14:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 14:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 14:15:13","page":1} 
[2026-09-23 14:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 13:30:17","window_to":"2026-09-23 14:30:17"} 
[2026-09-23 14:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 14:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 14:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 13:45:13","window_to":"2026-09-23 14:45:13"} 
[2026-09-23 14:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 14:30:17","page":1} 
[2026-09-23 14:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 14:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 15:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 14:45:13","page":1} 
[2026-09-23 15:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 14:00:16","window_to":"2026-09-23 15:00:16"} 
[2026-09-23 15:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 15:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 15:00:30] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-23 14:00:30","window_to":"2026-09-23 15:00:30"} 
[2026-09-23 15:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 14:15:15","window_to":"2026-09-23 15:15:15"} 
[2026-09-23 15:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 15:00:16","page":1} 
[2026-09-23 15:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 15:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 15:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 15:15:15","page":1} 
[2026-09-23 15:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 14:30:15","window_to":"2026-09-23 15:30:15"} 
[2026-09-23 15:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 15:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 15:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 15:30:15","page":1} 
[2026-09-23 15:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 14:45:14","window_to":"2026-09-23 15:45:14"} 
[2026-09-23 15:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 15:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 16:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 15:00:15","window_to":"2026-09-23 16:00:15"} 
[2026-09-23 16:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 15:45:14","page":1} 
[2026-09-23 16:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 16:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 16:00:28] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-23 15:00:28","window_to":"2026-09-23 16:00:28"} 
[2026-09-23 16:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 16:00:16","page":1} 
[2026-09-23 16:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 15:15:12","window_to":"2026-09-23 16:15:13"} 
[2026-09-23 16:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 16:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 16:16:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:16:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:16:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:16:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:16:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:16:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:17:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:17:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:17:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:17:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:18:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:18:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:18:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:18:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:18:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:19:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:19:14] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null}  
[2026-09-23 16:19:15] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1"}  
[2026-09-23 16:19:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:19:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:19:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:19:47] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null}  
[2026-09-23 16:19:49] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1"}  
[2026-09-23 16:20:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:20:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:20:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:20:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:21:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:21:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:21:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:21:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:22:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:22:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:22:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:22:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:23:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:23:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:23:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:23:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:24:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:24:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:24:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:24:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:25:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:25:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:25:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:25:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:26:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:26:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:26:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:26:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:27:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:27:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:27:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:27:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:28:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:28:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:28:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:28:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:29:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:29:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:29:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:29:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:29:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 15:30:19","window_to":"2026-09-23 16:30:19"} 
[2026-09-23 16:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 16:15:12","page":1} 
[2026-09-23 16:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 16:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 16:30:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:30:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:30:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:30:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:30:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:30:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:30:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:30:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:31:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:31:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:31:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:31:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:32:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:32:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:32:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:32:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:33:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:33:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:33:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:33:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:34:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:34:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:34:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:34:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:35:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:35:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:35:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:35:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:36:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:36:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:36:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:36:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:37:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:37:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:37:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:37:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:38:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:38:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:38:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:38:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:38:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:38:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:38:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:38:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:39:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:39:15] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null}  
[2026-09-23 16:39:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:39:16] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1"}  
[2026-09-23 16:39:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:39:20] local.INFO: Entering getAllStudents route. Params: {"page":"2","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null}  
[2026-09-23 16:39:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:39:39] local.INFO: Entering getAllStudents route. Params: {"page":"8","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null}  
[2026-09-23 16:39:42] local.INFO: Entering getAllStudents route. Params: {"page":"7","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null}  
[2026-09-23 16:39:46] local.INFO: Entering getAllStudents route. Params: {"page":"6","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null}  
[2026-09-23 16:39:50] local.INFO: Entering getAllStudents route. Params: {"page":"5","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null}  
[2026-09-23 16:39:53] local.INFO: Entering getAllStudents route. Params: {"page":"4","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null}  
[2026-09-23 16:39:56] local.INFO: Entering getAllStudents route. Params: {"page":"3","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null}  
[2026-09-23 16:40:20] local.INFO: Workflow query: {"sql":"select \"leads\".*, (select count(*) from \"lead_activities\" where \"leads\".\"id\" = \"lead_activities\".\"lead_id\" and \"lead_activities\".\"deleted_at\" is null) as \"activities_count\", (select count(*) from \"crm_tasks\" where \"leads\".\"id\" = \"crm_tasks\".\"lead_id\" and \"task_type\" = ? and \"crm_tasks\".\"deleted_at\" is null) as \"follow_up_count\" from \"leads\" where \"leads\".\"deleted_at\" is null","bindings":["follow_up"]} 
[2026-09-23 16:40:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:40:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:40:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:40:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:40:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:40:50] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null}  
[2026-09-23 16:40:50] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1"}  
[2026-09-23 16:41:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:41:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:41:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:41:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:41:54] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1"}  
[2026-09-23 16:41:54] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null}  
[2026-09-23 16:41:56] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":"26\/000058","status":null,"program":null,"batch":null,"type":null}  
[2026-09-23 16:41:56] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","search":"26\/000058"}  
[2026-09-23 16:41:58] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","search":"26\/000058","status":"inactive"}  
[2026-09-23 16:41:58] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","search":"26\/000058","status":"dropped"}  
[2026-09-23 16:41:58] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","search":"26\/000058","status":"suspended"}  
[2026-09-23 16:41:58] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","search":"26\/000058","status":"active"}  
[2026-09-23 16:41:58] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","search":"26\/000058","status":"graduated"}  
[2026-09-23 16:41:59] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","search":"26\/000058","type":"online"}  
[2026-09-23 16:42:00] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","search":"26\/000058","type":"offline"}  
[2026-09-23 16:42:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:42:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:42:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:42:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:43:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:43:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:43:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:43:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:44:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:44:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:44:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:44:38] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 16:30:20","page":1} 
[2026-09-23 16:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 15:45:15","window_to":"2026-09-23 16:45:15"} 
[2026-09-23 16:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 16:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 16:45:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:45:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:45:38] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:45:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:46:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:46:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:46:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:46:38] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:47:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:47:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:47:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:47:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:48:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:48:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:48:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:48:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:49:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:49:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:49:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:49:38] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:50:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:50:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:51:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:51:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:51:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:51:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:52:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:52:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:52:38] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:52:38] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:53:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:53:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:53:38] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:53:38] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:54:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:54:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:54:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:54:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:55:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:55:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:56:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:56:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:56:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:56:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:57:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:57:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:57:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:57:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:58:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:58:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:58:21] local.INFO: Workflow query: {"sql":"select \"leads\".*, (select count(*) from \"lead_activities\" where \"leads\".\"id\" = \"lead_activities\".\"lead_id\" and \"lead_activities\".\"deleted_at\" is null) as \"activities_count\", (select count(*) from \"crm_tasks\" where \"leads\".\"id\" = \"crm_tasks\".\"lead_id\" and \"task_type\" = ? and \"crm_tasks\".\"deleted_at\" is null) as \"follow_up_count\" from \"leads\" where \"leads\".\"deleted_at\" is null","bindings":["follow_up"]} 
[2026-09-23 16:58:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:58:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:59:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:59:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:59:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:59:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 16:59:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:00:00] local.INFO: Auto-assign: Getting eligible counselors {"branch_id":null,"last_assigned_user_id":null,"last_assigned_staff_id":null} 
[2026-09-23 17:00:00] local.INFO: Auto-assign: Found counselors {"count":1,"counselor_ids":[10]} 
[2026-09-23 17:00:00] local.INFO: Auto-assigned counselor using database locking {"staff_id":5,"user_id":10,"staff_name":null} 
[2026-09-23 17:00:03] local.INFO: Workflow query: {"sql":"select \"leads\".*, (select count(*) from \"lead_activities\" where \"leads\".\"id\" = \"lead_activities\".\"lead_id\" and \"lead_activities\".\"deleted_at\" is null) as \"activities_count\", (select count(*) from \"crm_tasks\" where \"leads\".\"id\" = \"crm_tasks\".\"lead_id\" and \"task_type\" = ? and \"crm_tasks\".\"deleted_at\" is null) as \"follow_up_count\" from \"leads\" where \"leads\".\"deleted_at\" is null","bindings":["follow_up"]} 
[2026-09-23 17:00:03] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:00:03] local.INFO: No FCM tokens found for user {"notification_id":55,"user_id":10} 
[2026-09-23 17:00:03] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:00:03] local.INFO: No FCM tokens found for user {"notification_id":56,"user_id":1} 
[2026-09-23 17:00:03] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:00:03] local.INFO: No FCM tokens found for user {"notification_id":57,"user_id":2} 
[2026-09-23 17:00:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:00:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 16:45:15","page":1} 
[2026-09-23 17:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 16:00:19","window_to":"2026-09-23 17:00:20"} 
[2026-09-23 17:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 17:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 17:00:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:00:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:00:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:00:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-23 16:00:33","window_to":"2026-09-23 17:00:34"} 
[2026-09-23 17:00:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:00:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:00:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:01:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:01:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:01:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:01:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:02:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:02:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:02:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:02:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:03:24] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1"}  
[2026-09-23 17:03:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:03:25] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null}  
[2026-09-23 17:03:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:03:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:03:42] local.INFO: Entering getAllStudents route. Params: {"page":"2","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null}  
[2026-09-23 17:03:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:04:13] local.INFO: Entering getAllStudents route. Params: {"page":"3","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null}  
[2026-09-23 17:04:16] local.INFO: Entering getAllStudents route. Params: {"page":"4","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null}  
[2026-09-23 17:04:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:04:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:04:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:04:30] local.INFO: Entering getAllStudents route. Params: {"page":"5","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null}  
[2026-09-23 17:04:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:05:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:05:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:05:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:05:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:06:10] local.INFO: Entering getAllStudents route. Params: {"page":"5","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null}  
[2026-09-23 17:06:11] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1"}  
[2026-09-23 17:06:15] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null}  
[2026-09-23 17:06:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:06:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:06:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:06:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:07:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:07:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:07:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:07:46] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null,"branch_id":"4"}  
[2026-09-23 17:07:46] local.INFO: applyStudentFilters branch_id: 4  
[2026-09-23 17:07:49] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null,"branch_id":"1"}  
[2026-09-23 17:07:49] local.INFO: applyStudentFilters branch_id: 1  
[2026-09-23 17:07:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:08:05] local.INFO: Entering getAllStudents route. Params: {"page":"6","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null,"branch_id":"1"}  
[2026-09-23 17:08:05] local.INFO: applyStudentFilters branch_id: 1  
[2026-09-23 17:08:10] local.INFO: Entering getAllStudents route. Params: {"page":"5","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null,"branch_id":"1"}  
[2026-09-23 17:08:10] local.INFO: applyStudentFilters branch_id: 1  
[2026-09-23 17:08:16] local.INFO: Entering getAllStudents route. Params: {"page":"2","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null,"branch_id":"1"}  
[2026-09-23 17:08:16] local.INFO: applyStudentFilters branch_id: 1  
[2026-09-23 17:08:19] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null,"branch_id":"1"}  
[2026-09-23 17:08:19] local.INFO: applyStudentFilters branch_id: 1  
[2026-09-23 17:08:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:08:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:08:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:08:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:08:59] local.INFO: Entering getAllStudents route. Params: {"page":"3","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null,"branch_id":"1"}  
[2026-09-23 17:08:59] local.INFO: applyStudentFilters branch_id: 1  
[2026-09-23 17:09:03] local.INFO: Entering getAllStudents route. Params: {"page":"5","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null,"branch_id":"1"}  
[2026-09-23 17:09:03] local.INFO: applyStudentFilters branch_id: 1  
[2026-09-23 17:09:08] local.INFO: Entering getAllStudents route. Params: {"page":"6","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null,"branch_id":"1"}  
[2026-09-23 17:09:08] local.INFO: applyStudentFilters branch_id: 1  
[2026-09-23 17:09:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:09:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:09:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:09:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:10:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:10:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:10:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:10:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:10:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:11:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:11:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:11:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:12:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:12:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:12:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:12:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:13:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:13:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:13:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:13:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:14:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:14:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:14:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:14:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 16:15:14","window_to":"2026-09-23 17:15:14"} 
[2026-09-23 17:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 17:00:20","page":1} 
[2026-09-23 17:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 17:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 17:15:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:15:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:16:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:16:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:16:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:16:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:17:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:17:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:17:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:17:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:18:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:18:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:19:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:19:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:20:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:22:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:22:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:23:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:23:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:24:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:24:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:26:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:26:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:27:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:27:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:28:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:28:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:29:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:29:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 17:15:15","page":1} 
[2026-09-23 17:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 16:30:15","window_to":"2026-09-23 17:30:16"} 
[2026-09-23 17:30:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:30:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 17:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 17:31:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:31:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:32:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:32:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:33:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:33:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:34:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:34:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:36:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:36:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:37:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:37:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:38:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:38:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:39:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:39:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:41:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:41:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:42:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:42:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:43:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:43:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:44:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:44:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 16:45:16","window_to":"2026-09-23 17:45:16"} 
[2026-09-23 17:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 17:30:15","page":1} 
[2026-09-23 17:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 17:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 17:46:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:46:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:47:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:47:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:48:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:48:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:49:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:49:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:51:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:51:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:52:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:52:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:53:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:53:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:54:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:54:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:56:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:56:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:57:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:57:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:58:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:58:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:59:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 17:59:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 18:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 17:45:16","page":1} 
[2026-09-23 18:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 17:00:15","window_to":"2026-09-23 18:00:15"} 
[2026-09-23 18:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 18:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 18:00:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 18:00:28] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-23 17:00:27","window_to":"2026-09-23 18:00:27"} 
[2026-09-23 18:01:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 18:01:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 18:02:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 18:02:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 18:03:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 18:03:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 18:04:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 18:04:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 18:06:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 18:06:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 18:06:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 18:07:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 18:07:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 18:08:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 18:08:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-23 18:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 18:00:15","page":1} 
[2026-09-23 18:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 17:15:13","window_to":"2026-09-23 18:15:13"} 
[2026-09-23 18:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 18:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 18:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 18:15:13","page":1} 
[2026-09-23 18:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 17:30:15","window_to":"2026-09-23 18:30:15"} 
[2026-09-23 18:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 18:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 18:45:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 18:30:15","page":1} 
[2026-09-23 18:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 17:45:14","window_to":"2026-09-23 18:45:14"} 
[2026-09-23 18:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 18:45:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 19:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 18:45:14","page":1} 
[2026-09-23 19:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 18:00:15","window_to":"2026-09-23 19:00:15"} 
[2026-09-23 19:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 19:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 19:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-23 18:00:27","window_to":"2026-09-23 19:00:27"} 
[2026-09-23 19:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 19:00:15","page":1} 
[2026-09-23 19:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 18:15:13","window_to":"2026-09-23 19:15:13"} 
[2026-09-23 19:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 19:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 19:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 19:15:13","page":1} 
[2026-09-23 19:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 19:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 18:30:16","window_to":"2026-09-23 19:30:16"} 
[2026-09-23 19:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 19:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 18:45:12","window_to":"2026-09-23 19:45:13"} 
[2026-09-23 19:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 19:30:15","page":1} 
[2026-09-23 19:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 19:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 20:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 19:45:13","page":1} 
[2026-09-23 20:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 19:00:13","window_to":"2026-09-23 20:00:13"} 
[2026-09-23 20:00:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 20:00:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 20:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-23 19:00:25","window_to":"2026-09-23 20:00:25"} 
[2026-09-23 20:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 20:00:13","page":1} 
[2026-09-23 20:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 19:15:13","window_to":"2026-09-23 20:15:13"} 
[2026-09-23 20:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 20:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 20:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 20:15:13","page":1} 
[2026-09-23 20:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 19:30:14","window_to":"2026-09-23 20:30:14"} 
[2026-09-23 20:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 20:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 20:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 20:30:13","page":1} 
[2026-09-23 20:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 20:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 20:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 19:45:13","window_to":"2026-09-23 20:45:13"} 
[2026-09-23 21:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 20:00:15","window_to":"2026-09-23 21:00:15"} 
[2026-09-23 21:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 20:45:12","page":1} 
[2026-09-23 21:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 21:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 21:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-23 20:00:26","window_to":"2026-09-23 21:00:26"} 
[2026-09-23 21:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 21:00:15","page":1} 
[2026-09-23 21:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 20:15:12","window_to":"2026-09-23 21:15:13"} 
[2026-09-23 21:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 21:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 21:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 20:30:14","window_to":"2026-09-23 21:30:14"} 
[2026-09-23 21:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 21:15:12","page":1} 
[2026-09-23 21:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 21:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 21:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 20:45:13","window_to":"2026-09-23 21:45:13"} 
[2026-09-23 21:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 21:30:15","page":1} 
[2026-09-23 21:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 21:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 22:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 21:00:14","window_to":"2026-09-23 22:00:14"} 
[2026-09-23 22:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 21:45:13","page":1} 
[2026-09-23 22:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 22:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 22:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-23 21:00:25","window_to":"2026-09-23 22:00:25"} 
[2026-09-23 22:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 22:00:14","page":1} 
[2026-09-23 22:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 21:15:12","window_to":"2026-09-23 22:15:12"} 
[2026-09-23 22:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 22:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 22:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 21:30:15","window_to":"2026-09-23 22:30:15"} 
[2026-09-23 22:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 22:15:12","page":1} 
[2026-09-23 22:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 22:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 22:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 22:30:17","page":1} 
[2026-09-23 22:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 21:45:12","window_to":"2026-09-23 22:45:13"} 
[2026-09-23 22:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 22:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 23:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 22:45:13","page":1} 
[2026-09-23 23:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 22:00:14","window_to":"2026-09-23 23:00:14"} 
[2026-09-23 23:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 23:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 23:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-23 22:00:26","window_to":"2026-09-23 23:00:26"} 
[2026-09-23 23:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 23:00:14","page":1} 
[2026-09-23 23:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 22:15:12","window_to":"2026-09-23 23:15:12"} 
[2026-09-23 23:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 23:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 23:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 22:30:13","window_to":"2026-09-23 23:30:13"} 
[2026-09-23 23:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 23:15:12","page":1} 
[2026-09-23 23:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 23:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-23 23:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 23:30:14","page":1} 
[2026-09-23 23:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 22:45:12","window_to":"2026-09-23 23:45:12"} 
[2026-09-23 23:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-23 23:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 00:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 23:00:15","window_to":"2026-09-24 00:00:15"} 
[2026-09-24 00:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-23 23:45:12","page":1} 
[2026-09-24 00:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 00:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 00:00:30] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_24_00_00_30.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-24 00:00:30] local.INFO: Student payment status check queued {"batches":1,"students":54} 
[2026-09-24 00:00:30] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-23 23:00:30","window_to":"2026-09-24 00:00:30"} 
[2026-09-24 00:00:31] local.INFO: Student payment status cron evaluated {"student_id":17,"admission_no":"26/000013","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:31] local.INFO: Student payment status cron evaluated {"student_id":5,"admission_no":"26/000001","outstanding_amount":24000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:31] local.INFO: Student payment status cron evaluated {"student_id":8,"admission_no":"26/000004","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:31] local.INFO: Student payment status cron evaluated {"student_id":9,"admission_no":"26/000005","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:32] local.INFO: Student payment status cron evaluated {"student_id":13,"admission_no":"26/000009","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:32] local.INFO: Student payment status cron evaluated {"student_id":14,"admission_no":"26/000010","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:32] local.INFO: Student payment status cron evaluated {"student_id":16,"admission_no":"26/000012","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:32] local.INFO: Student payment status cron evaluated {"student_id":20,"admission_no":"26/000016","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:32] local.INFO: Student payment status cron evaluated {"student_id":22,"admission_no":"26/000018","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:32] local.INFO: Student payment status cron evaluated {"student_id":23,"admission_no":"26/000019","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:33] local.INFO: Student payment status cron evaluated {"student_id":26,"admission_no":"26/000022","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:33] local.INFO: Student payment status cron evaluated {"student_id":28,"admission_no":"26/000024","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:33] local.INFO: Student payment status cron evaluated {"student_id":31,"admission_no":"26/000027","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:33] local.INFO: Student payment status cron evaluated {"student_id":32,"admission_no":"26/000028","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:33] local.INFO: Student payment status cron evaluated {"student_id":33,"admission_no":"26/000029","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:34] local.INFO: Student payment status cron evaluated {"student_id":34,"admission_no":"26/000030","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:34] local.INFO: Student payment status cron evaluated {"student_id":35,"admission_no":"26/000031","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:34] local.INFO: Student payment status cron evaluated {"student_id":36,"admission_no":"26/000032","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:34] local.INFO: Student payment status cron evaluated {"student_id":37,"admission_no":"26/000033","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:34] local.INFO: Student payment status cron evaluated {"student_id":38,"admission_no":"26/000034","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:34] local.INFO: Student payment status cron evaluated {"student_id":39,"admission_no":"26/000035","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:34] local.INFO: Student payment status cron evaluated {"student_id":40,"admission_no":"26/000036","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:35] local.INFO: Student payment status cron evaluated {"student_id":43,"admission_no":"26/000039","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:35] local.INFO: Student payment status cron evaluated {"student_id":44,"admission_no":"26/000040","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:35] local.INFO: Student payment status cron evaluated {"student_id":45,"admission_no":"26/000041","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:35] local.INFO: Student payment status cron evaluated {"student_id":46,"admission_no":"26/000042","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:35] local.INFO: Student payment status cron evaluated {"student_id":47,"admission_no":"26/000043","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:36] local.INFO: Student payment status cron evaluated {"student_id":50,"admission_no":"26/000046","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:36] local.INFO: Student payment status cron evaluated {"student_id":51,"admission_no":"26/000047","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:36] local.INFO: Student payment status cron evaluated {"student_id":52,"admission_no":"26/000048","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:36] local.INFO: Student payment status cron evaluated {"student_id":53,"admission_no":"26/000049","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:36] local.INFO: Student payment status cron evaluated {"student_id":54,"admission_no":"26/000050","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:36] local.INFO: Student payment status cron evaluated {"student_id":55,"admission_no":"26/000051","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:36] local.INFO: Student payment status cron evaluated {"student_id":56,"admission_no":"26/000052","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:37] local.INFO: Student payment status cron evaluated {"student_id":57,"admission_no":"26/000053","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:37] local.INFO: Student payment status cron evaluated {"student_id":59,"admission_no":"26/000055","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:37] local.INFO: Student payment status cron evaluated {"student_id":61,"admission_no":"26/000057","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:37] local.INFO: Student payment status cron evaluated {"student_id":63,"admission_no":"26/000059","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:37] local.INFO: Student payment status cron evaluated {"student_id":64,"admission_no":"26/000060","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:37] local.INFO: Student payment status cron evaluated {"student_id":65,"admission_no":"26/000061","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:38] local.INFO: Student payment status cron evaluated {"student_id":66,"admission_no":"26/000062","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:38] local.INFO: Student payment status cron evaluated {"student_id":67,"admission_no":"26/000063","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:38] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_24_00_00_30.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-24 00:00:38] local.INFO: Student payment status cron evaluated {"student_id":68,"admission_no":"26/000064","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:38] local.INFO: Student payment status cron evaluated {"student_id":69,"admission_no":"26/000065","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:38] local.INFO: Student payment status cron evaluated {"student_id":70,"admission_no":"26/000066","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:38] local.INFO: Student payment status cron evaluated {"student_id":72,"admission_no":"26/000068","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:38] local.INFO: Student payment status cron evaluated {"student_id":73,"admission_no":"26/000069","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:38] local.INFO: Student payment status cron evaluated {"student_id":74,"admission_no":"26/000070","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:38] local.INFO: Student payment status cron evaluated {"student_id":75,"admission_no":"26/000071","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:38] local.INFO: Student payment status cron evaluated {"student_id":76,"admission_no":"26/000072","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:38] local.INFO: Student payment status cron evaluated {"student_id":77,"admission_no":"26/000073","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:39] local.INFO: Student payment status cron evaluated {"student_id":78,"admission_no":"26/000074","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:39] local.INFO: Student payment status cron evaluated {"student_id":79,"admission_no":"26/000075","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:00:39] local.INFO: Student payment status cron evaluated {"student_id":80,"admission_no":"26/000076","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-24 00:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 23:15:12","window_to":"2026-09-24 00:15:12"} 
[2026-09-24 00:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 00:00:15","page":1} 
[2026-09-24 00:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 00:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 00:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 23:30:13","window_to":"2026-09-24 00:30:13"} 
[2026-09-24 00:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 00:15:13","page":1} 
[2026-09-24 00:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 00:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 00:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 00:30:14","page":1} 
[2026-09-24 00:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 00:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-23 23:45:12","window_to":"2026-09-24 00:45:12"} 
[2026-09-24 00:45:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 01:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 00:45:11","page":1} 
[2026-09-24 01:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 00:00:14","window_to":"2026-09-24 01:00:14"} 
[2026-09-24 01:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 01:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 01:00:27] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-24 00:00:27","window_to":"2026-09-24 01:00:27"} 
[2026-09-24 01:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 00:15:11","window_to":"2026-09-24 01:15:11"} 
[2026-09-24 01:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 01:00:14","page":1} 
[2026-09-24 01:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 01:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 01:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 01:15:11","page":1} 
[2026-09-24 01:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 00:30:15","window_to":"2026-09-24 01:30:15"} 
[2026-09-24 01:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 01:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 01:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 01:30:15","page":1} 
[2026-09-24 01:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 00:45:13","window_to":"2026-09-24 01:45:13"} 
[2026-09-24 01:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 01:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 02:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 01:00:13","window_to":"2026-09-24 02:00:13"} 
[2026-09-24 02:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 01:45:13","page":1} 
[2026-09-24 02:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 02:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 02:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-24 01:00:25","window_to":"2026-09-24 02:00:25"} 
[2026-09-24 02:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 01:15:11","window_to":"2026-09-24 02:15:11"} 
[2026-09-24 02:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 02:00:14","page":1} 
[2026-09-24 02:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 02:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 02:30:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 02:15:11","page":1} 
[2026-09-24 02:30:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 01:30:12","window_to":"2026-09-24 02:30:12"} 
[2026-09-24 02:30:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 02:30:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 02:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 01:45:10","window_to":"2026-09-24 02:45:10"} 
[2026-09-24 02:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 02:30:12","page":1} 
[2026-09-24 02:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 02:45:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 03:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 02:00:13","window_to":"2026-09-24 03:00:13"} 
[2026-09-24 03:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 02:45:11","page":1} 
[2026-09-24 03:00:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 03:00:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 03:00:23] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-24 02:00:23","window_to":"2026-09-24 03:00:23"} 
[2026-09-24 03:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 03:00:13","page":1} 
[2026-09-24 03:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 02:15:11","window_to":"2026-09-24 03:15:11"} 
[2026-09-24 03:15:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 03:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 03:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 03:15:11","page":1} 
[2026-09-24 03:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 02:30:14","window_to":"2026-09-24 03:30:14"} 
[2026-09-24 03:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 03:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 03:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 03:30:14","page":1} 
[2026-09-24 03:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 03:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 02:45:12","window_to":"2026-09-24 03:45:12"} 
[2026-09-24 03:45:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 04:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 03:45:12","page":1} 
[2026-09-24 04:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 03:00:13","window_to":"2026-09-24 04:00:13"} 
[2026-09-24 04:00:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 04:00:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 04:00:23] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-24 03:00:22","window_to":"2026-09-24 04:00:22"} 
[2026-09-24 04:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 04:00:13","page":1} 
[2026-09-24 04:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 03:15:12","window_to":"2026-09-24 04:15:12"} 
[2026-09-24 04:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 04:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 04:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 04:15:11","page":1} 
[2026-09-24 04:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 03:30:13","window_to":"2026-09-24 04:30:13"} 
[2026-09-24 04:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 04:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 04:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 03:45:11","window_to":"2026-09-24 04:45:12"} 
[2026-09-24 04:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 04:30:13","page":1} 
[2026-09-24 04:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 04:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 05:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 04:45:12","page":1} 
[2026-09-24 05:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 04:00:15","window_to":"2026-09-24 05:00:15"} 
[2026-09-24 05:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 05:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 05:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-24 04:00:26","window_to":"2026-09-24 05:00:26"} 
[2026-09-24 05:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 04:15:12","window_to":"2026-09-24 05:15:12"} 
[2026-09-24 05:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 05:00:15","page":1} 
[2026-09-24 05:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 05:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 05:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 04:30:14","window_to":"2026-09-24 05:30:15"} 
[2026-09-24 05:30:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 05:15:12","page":1} 
[2026-09-24 05:30:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 05:30:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 05:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 04:45:12","window_to":"2026-09-24 05:45:12"} 
[2026-09-24 05:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 05:30:15","page":1} 
[2026-09-24 05:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 05:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 06:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 05:00:13","window_to":"2026-09-24 06:00:13"} 
[2026-09-24 06:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 05:45:13","page":1} 
[2026-09-24 06:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 06:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 06:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-24 05:00:24","window_to":"2026-09-24 06:00:24"} 
[2026-09-24 06:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 06:00:14","page":1} 
[2026-09-24 06:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 06:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 05:15:13","window_to":"2026-09-24 06:15:13"} 
[2026-09-24 06:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 06:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 05:30:13","window_to":"2026-09-24 06:30:13"} 
[2026-09-24 06:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 06:15:12","page":1} 
[2026-09-24 06:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 06:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 06:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 06:30:14","page":1} 
[2026-09-24 06:45:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 05:45:13","window_to":"2026-09-24 06:45:14"} 
[2026-09-24 06:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 06:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 07:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 06:45:13","page":1} 
[2026-09-24 07:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 06:00:14","window_to":"2026-09-24 07:00:14"} 
[2026-09-24 07:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 07:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 07:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-24 06:00:26","window_to":"2026-09-24 07:00:26"} 
[2026-09-24 07:15:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 07:00:14","page":1} 
[2026-09-24 07:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 06:15:13","window_to":"2026-09-24 07:15:13"} 
[2026-09-24 07:15:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 07:15:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 07:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 07:15:13","page":1} 
[2026-09-24 07:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 06:30:14","window_to":"2026-09-24 07:30:14"} 
[2026-09-24 07:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 07:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 07:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 07:30:14","page":1} 
[2026-09-24 07:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 06:45:13","window_to":"2026-09-24 07:45:13"} 
[2026-09-24 07:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 07:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 08:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 07:00:14","window_to":"2026-09-24 08:00:15"} 
[2026-09-24 08:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 07:45:13","page":1} 
[2026-09-24 08:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 08:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 08:00:28] local.INFO: Payment reminders queued {"batches":1,"students":54} 
[2026-09-24 08:00:28] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-24 07:00:28","window_to":"2026-09-24 08:00:28"} 
[2026-09-24 08:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 07:15:11","window_to":"2026-09-24 08:15:11"} 
[2026-09-24 08:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 08:00:15","page":1} 
[2026-09-24 08:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 08:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 08:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 08:15:11","page":1} 
[2026-09-24 08:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 07:30:13","window_to":"2026-09-24 08:30:13"} 
[2026-09-24 08:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 08:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 08:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 08:30:13","page":1} 
[2026-09-24 08:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 07:45:18","window_to":"2026-09-24 08:45:18"} 
[2026-09-24 08:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 08:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 09:00:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 08:45:18","page":1} 
[2026-09-24 09:00:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 08:00:23","window_to":"2026-09-24 09:00:24"} 
[2026-09-24 09:00:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 09:00:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 09:00:40] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-24 08:00:39","window_to":"2026-09-24 09:00:39"} 
[2026-09-24 09:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 08:15:16","window_to":"2026-09-24 09:15:16"} 
[2026-09-24 09:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 09:00:23","page":1} 
[2026-09-24 09:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 09:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 09:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 09:15:17","page":1} 
[2026-09-24 09:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 08:30:19","window_to":"2026-09-24 09:30:19"} 
[2026-09-24 09:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 09:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 09:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 09:30:20","page":1} 
[2026-09-24 09:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 08:45:18","window_to":"2026-09-24 09:45:18"} 
[2026-09-24 09:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 09:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 10:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 09:00:19","window_to":"2026-09-24 10:00:20"} 
[2026-09-24 10:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 09:45:17","page":1} 
[2026-09-24 10:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 10:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 10:00:37] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-24 09:00:37","window_to":"2026-09-24 10:00:37"} 
[2026-09-24 10:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 10:00:21","page":1} 
[2026-09-24 10:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 09:15:16","window_to":"2026-09-24 10:15:16"} 
[2026-09-24 10:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 10:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 10:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 10:15:16","page":1} 
[2026-09-24 10:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 10:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 10:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 09:30:17","window_to":"2026-09-24 10:30:17"} 
[2026-09-24 10:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 10:30:16","page":1} 
[2026-09-24 10:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 09:45:19","window_to":"2026-09-24 10:45:19"} 
[2026-09-24 10:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 10:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 11:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 10:45:19","page":1} 
[2026-09-24 11:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 10:00:20","window_to":"2026-09-24 11:00:21"} 
[2026-09-24 11:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 11:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 11:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-24 10:00:36","window_to":"2026-09-24 11:00:36"} 
[2026-09-24 11:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 11:00:20","page":1} 
[2026-09-24 11:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 11:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 10:15:17","window_to":"2026-09-24 11:15:17"} 
[2026-09-24 11:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 11:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 11:15:16","page":1} 
[2026-09-24 11:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 10:30:18","window_to":"2026-09-24 11:30:19"} 
[2026-09-24 11:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 11:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 11:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 11:30:19","page":1} 
[2026-09-24 11:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 10:45:18","window_to":"2026-09-24 11:45:18"} 
[2026-09-24 11:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 11:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 12:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 11:45:17","page":1} 
[2026-09-24 12:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 11:00:19","window_to":"2026-09-24 12:00:20"} 
[2026-09-24 12:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 12:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 12:00:39] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_24_12_00_39.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-24 12:00:39] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-24 11:00:39","window_to":"2026-09-24 12:00:39"} 
[2026-09-24 12:00:46] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_24_12_00_39.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-24 12:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 11:15:17","window_to":"2026-09-24 12:15:17"} 
[2026-09-24 12:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 12:00:19","page":1} 
[2026-09-24 12:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 12:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 12:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 11:30:19","window_to":"2026-09-24 12:30:19"} 
[2026-09-24 12:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 12:15:18","page":1} 
[2026-09-24 12:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 12:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 12:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 11:45:16","window_to":"2026-09-24 12:45:17"} 
[2026-09-24 12:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 12:30:19","page":1} 
[2026-09-24 12:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 12:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 13:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 12:45:17","page":1} 
[2026-09-24 13:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 12:00:19","window_to":"2026-09-24 13:00:19"} 
[2026-09-24 13:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 13:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 13:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-24 12:00:35","window_to":"2026-09-24 13:00:36"} 
[2026-09-24 13:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 13:00:20","page":1} 
[2026-09-24 13:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 12:15:16","window_to":"2026-09-24 13:15:16"} 
[2026-09-24 13:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 13:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 13:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 12:30:20","window_to":"2026-09-24 13:30:20"} 
[2026-09-24 13:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 13:15:16","page":1} 
[2026-09-24 13:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 13:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 13:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 13:30:20","page":1} 
[2026-09-24 13:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 12:45:18","window_to":"2026-09-24 13:45:18"} 
[2026-09-24 13:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 13:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 14:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 13:45:18","page":1} 
[2026-09-24 14:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 13:00:21","window_to":"2026-09-24 14:00:21"} 
[2026-09-24 14:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 14:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 14:00:40] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-24 13:00:39","window_to":"2026-09-24 14:00:39"} 
[2026-09-24 14:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 13:15:17","window_to":"2026-09-24 14:15:18"} 
[2026-09-24 14:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 14:00:21","page":1} 
[2026-09-24 14:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 14:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 14:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 14:15:18","page":1} 
[2026-09-24 14:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 13:30:19","window_to":"2026-09-24 14:30:19"} 
[2026-09-24 14:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 14:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 14:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 13:45:17","window_to":"2026-09-24 14:45:17"} 
[2026-09-24 14:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 14:30:19","page":1} 
[2026-09-24 14:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 14:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 15:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 14:45:17","page":1} 
[2026-09-24 15:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 14:00:21","window_to":"2026-09-24 15:00:21"} 
[2026-09-24 15:00:32] local.ERROR: ❌ Exception while polling TikTok leads {"error":"cURL error 28: SSL connection timeout (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://business-api.tiktok.com/open_api/v1.3/page/leads/get/?filtering=%7B%22start_time%22%3A%222026-09-24%2014%3A45%3A17%22%7D&page=1&page_size=100"} 
[2026-09-24 15:00:32] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 15:00:37] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-24 14:00:36","window_to":"2026-09-24 15:00:36"} 
[2026-09-24 15:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 14:15:15","window_to":"2026-09-24 15:15:15"} 
[2026-09-24 15:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 15:00:21","page":1} 
[2026-09-24 15:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 15:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 15:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 14:30:16","window_to":"2026-09-24 15:30:16"} 
[2026-09-24 15:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 15:15:15","page":1} 
[2026-09-24 15:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 15:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 15:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 15:30:17","page":1} 
[2026-09-24 15:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 14:45:15","window_to":"2026-09-24 15:45:15"} 
[2026-09-24 15:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 15:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 16:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 15:00:18","window_to":"2026-09-24 16:00:18"} 
[2026-09-24 16:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 15:45:15","page":1} 
[2026-09-24 16:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 16:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 16:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-24 15:00:34","window_to":"2026-09-24 16:00:34"} 
[2026-09-24 16:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 16:00:19","page":1} 
[2026-09-24 16:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 15:15:16","window_to":"2026-09-24 16:15:17"} 
[2026-09-24 16:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 16:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 16:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 16:15:17","page":1} 
[2026-09-24 16:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 15:30:17","window_to":"2026-09-24 16:30:17"} 
[2026-09-24 16:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 16:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 16:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 16:30:17","page":1} 
[2026-09-24 16:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 15:45:17","window_to":"2026-09-24 16:45:17"} 
[2026-09-24 16:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 16:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 17:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 16:00:18","window_to":"2026-09-24 17:00:19"} 
[2026-09-24 17:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 16:45:17","page":1} 
[2026-09-24 17:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 17:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 17:00:35] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-24 16:00:35","window_to":"2026-09-24 17:00:35"} 
[2026-09-24 17:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 16:15:17","window_to":"2026-09-24 17:15:17"} 
[2026-09-24 17:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 17:00:19","page":1} 
[2026-09-24 17:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 17:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 17:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 16:30:18","window_to":"2026-09-24 17:30:18"} 
[2026-09-24 17:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 17:15:17","page":1} 
[2026-09-24 17:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 17:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 17:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 17:30:18","page":1} 
[2026-09-24 17:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 16:45:16","window_to":"2026-09-24 17:45:16"} 
[2026-09-24 17:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 17:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 18:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 17:45:16","page":1} 
[2026-09-24 18:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 17:00:18","window_to":"2026-09-24 18:00:18"} 
[2026-09-24 18:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 18:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 18:00:32] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-24 17:00:32","window_to":"2026-09-24 18:00:32"} 
[2026-09-24 18:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 18:00:18","page":1} 
[2026-09-24 18:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 17:15:16","window_to":"2026-09-24 18:15:16"} 
[2026-09-24 18:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 18:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 18:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 17:30:16","window_to":"2026-09-24 18:30:16"} 
[2026-09-24 18:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 18:15:16","page":1} 
[2026-09-24 18:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 18:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 18:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 18:30:17","page":1} 
[2026-09-24 18:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 17:45:17","window_to":"2026-09-24 18:45:17"} 
[2026-09-24 18:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 18:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 19:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 18:00:19","window_to":"2026-09-24 19:00:19"} 
[2026-09-24 19:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 18:45:16","page":1} 
[2026-09-24 19:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 19:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 19:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-24 18:00:34","window_to":"2026-09-24 19:00:34"} 
[2026-09-24 19:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 19:00:20","page":1} 
[2026-09-24 19:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 18:15:16","window_to":"2026-09-24 19:15:16"} 
[2026-09-24 19:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 19:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 19:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 19:15:16","page":1} 
[2026-09-24 19:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 18:30:19","window_to":"2026-09-24 19:30:19"} 
[2026-09-24 19:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 19:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 19:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 19:30:18","page":1} 
[2026-09-24 19:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 18:45:16","window_to":"2026-09-24 19:45:17"} 
[2026-09-24 19:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 19:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 20:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 19:00:19","window_to":"2026-09-24 20:00:19"} 
[2026-09-24 20:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 19:45:17","page":1} 
[2026-09-24 20:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 20:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 20:00:35] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-24 19:00:35","window_to":"2026-09-24 20:00:35"} 
[2026-09-24 20:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 19:15:15","window_to":"2026-09-24 20:15:15"} 
[2026-09-24 20:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 20:00:19","page":1} 
[2026-09-24 20:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 20:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 20:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 20:15:17","page":1} 
[2026-09-24 20:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 19:30:16","window_to":"2026-09-24 20:30:17"} 
[2026-09-24 20:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 20:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 20:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 20:30:16","page":1} 
[2026-09-24 20:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 19:45:16","window_to":"2026-09-24 20:45:16"} 
[2026-09-24 20:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 20:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 21:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 20:00:17","window_to":"2026-09-24 21:00:17"} 
[2026-09-24 21:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 20:45:16","page":1} 
[2026-09-24 21:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 21:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 21:00:33] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-24 20:00:33","window_to":"2026-09-24 21:00:33"} 
[2026-09-24 21:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 21:00:18","page":1} 
[2026-09-24 21:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 20:15:15","window_to":"2026-09-24 21:15:15"} 
[2026-09-24 21:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 21:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 21:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 21:15:14","page":1} 
[2026-09-24 21:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 20:30:17","window_to":"2026-09-24 21:30:17"} 
[2026-09-24 21:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 21:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 21:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 21:30:17","page":1} 
[2026-09-24 21:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 20:45:16","window_to":"2026-09-24 21:45:16"} 
[2026-09-24 21:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 21:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 22:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 21:00:18","window_to":"2026-09-24 22:00:19"} 
[2026-09-24 22:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 21:45:16","page":1} 
[2026-09-24 22:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 22:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 22:00:35] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-24 21:00:35","window_to":"2026-09-24 22:00:35"} 
[2026-09-24 22:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 22:00:19","page":1} 
[2026-09-24 22:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 21:15:16","window_to":"2026-09-24 22:15:16"} 
[2026-09-24 22:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 22:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 22:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 22:15:15","page":1} 
[2026-09-24 22:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 22:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 22:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 21:30:18","window_to":"2026-09-24 22:30:18"} 
[2026-09-24 22:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 21:45:17","window_to":"2026-09-24 22:45:17"} 
[2026-09-24 22:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 22:30:17","page":1} 
[2026-09-24 22:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 22:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 23:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 22:00:18","window_to":"2026-09-24 23:00:18"} 
[2026-09-24 23:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 22:45:18","page":1} 
[2026-09-24 23:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 23:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 23:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-24 22:00:34","window_to":"2026-09-24 23:00:34"} 
[2026-09-24 23:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 23:00:19","page":1} 
[2026-09-24 23:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 22:15:16","window_to":"2026-09-24 23:15:16"} 
[2026-09-24 23:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 23:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 23:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 23:15:15","page":1} 
[2026-09-24 23:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 22:30:17","window_to":"2026-09-24 23:30:17"} 
[2026-09-24 23:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 23:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-24 23:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 23:30:16","page":1} 
[2026-09-24 23:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 22:45:15","window_to":"2026-09-24 23:45:15"} 
[2026-09-24 23:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-24 23:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 00:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-24 23:45:15","page":1} 
[2026-09-25 00:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 23:00:18","window_to":"2026-09-25 00:00:18"} 
[2026-09-25 00:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 00:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 00:00:36] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_25_00_00_36.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-25 00:00:37] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-24 23:00:36","window_to":"2026-09-25 00:00:36"} 
[2026-09-25 00:00:37] local.INFO: Student payment status check queued {"batches":1,"students":54} 
[2026-09-25 00:00:39] local.INFO: Student payment status cron evaluated {"student_id":17,"admission_no":"26/000013","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:40] local.INFO: Student payment status cron evaluated {"student_id":5,"admission_no":"26/000001","outstanding_amount":24000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:41] local.INFO: Student payment status cron evaluated {"student_id":8,"admission_no":"26/000004","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:41] local.INFO: Student payment status cron evaluated {"student_id":9,"admission_no":"26/000005","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:42] local.INFO: Student payment status cron evaluated {"student_id":13,"admission_no":"26/000009","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:42] local.INFO: Student payment status cron evaluated {"student_id":14,"admission_no":"26/000010","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:43] local.INFO: Student payment status cron evaluated {"student_id":16,"admission_no":"26/000012","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:43] local.INFO: Student payment status cron evaluated {"student_id":20,"admission_no":"26/000016","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:44] local.INFO: Student payment status cron evaluated {"student_id":22,"admission_no":"26/000018","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:44] local.INFO: Student payment status cron evaluated {"student_id":23,"admission_no":"26/000019","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:45] local.INFO: Student payment status cron evaluated {"student_id":26,"admission_no":"26/000022","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:45] local.INFO: Student payment status cron evaluated {"student_id":28,"admission_no":"26/000024","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:45] local.INFO: Student payment status cron evaluated {"student_id":31,"admission_no":"26/000027","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:46] local.INFO: Student payment status cron evaluated {"student_id":32,"admission_no":"26/000028","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:46] local.INFO: Student payment status cron evaluated {"student_id":33,"admission_no":"26/000029","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:47] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_25_00_00_36.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-25 00:00:47] local.INFO: Student payment status cron evaluated {"student_id":34,"admission_no":"26/000030","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:47] local.INFO: Student payment status cron evaluated {"student_id":35,"admission_no":"26/000031","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:47] local.INFO: Student payment status cron evaluated {"student_id":36,"admission_no":"26/000032","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:47] local.INFO: Student payment status cron evaluated {"student_id":37,"admission_no":"26/000033","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:47] local.INFO: Student payment status cron evaluated {"student_id":38,"admission_no":"26/000034","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:48] local.INFO: Student payment status cron evaluated {"student_id":39,"admission_no":"26/000035","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:48] local.INFO: Student payment status cron evaluated {"student_id":40,"admission_no":"26/000036","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:48] local.INFO: Student payment status cron evaluated {"student_id":43,"admission_no":"26/000039","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:48] local.INFO: Student payment status cron evaluated {"student_id":44,"admission_no":"26/000040","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:48] local.INFO: Student payment status cron evaluated {"student_id":45,"admission_no":"26/000041","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:48] local.INFO: Student payment status cron evaluated {"student_id":46,"admission_no":"26/000042","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:48] local.INFO: Student payment status cron evaluated {"student_id":47,"admission_no":"26/000043","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:48] local.INFO: Student payment status cron evaluated {"student_id":50,"admission_no":"26/000046","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:48] local.INFO: Student payment status cron evaluated {"student_id":51,"admission_no":"26/000047","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:48] local.INFO: Student payment status cron evaluated {"student_id":52,"admission_no":"26/000048","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:48] local.INFO: Student payment status cron evaluated {"student_id":53,"admission_no":"26/000049","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:48] local.INFO: Student payment status cron evaluated {"student_id":54,"admission_no":"26/000050","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":55,"admission_no":"26/000051","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":56,"admission_no":"26/000052","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":57,"admission_no":"26/000053","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":59,"admission_no":"26/000055","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":61,"admission_no":"26/000057","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":63,"admission_no":"26/000059","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":64,"admission_no":"26/000060","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":65,"admission_no":"26/000061","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":66,"admission_no":"26/000062","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":67,"admission_no":"26/000063","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":68,"admission_no":"26/000064","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":69,"admission_no":"26/000065","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":70,"admission_no":"26/000066","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":72,"admission_no":"26/000068","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":73,"admission_no":"26/000069","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":74,"admission_no":"26/000070","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":75,"admission_no":"26/000071","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":76,"admission_no":"26/000072","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":77,"admission_no":"26/000073","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":78,"admission_no":"26/000074","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":79,"admission_no":"26/000075","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":80,"admission_no":"26/000076","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-25 00:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 23:15:15","window_to":"2026-09-25 00:15:15"} 
[2026-09-25 00:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 00:00:17","page":1} 
[2026-09-25 00:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 00:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 00:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 23:30:17","window_to":"2026-09-25 00:30:17"} 
[2026-09-25 00:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 00:15:15","page":1} 
[2026-09-25 00:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 00:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 00:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 00:30:18","page":1} 
[2026-09-25 00:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-24 23:45:17","window_to":"2026-09-25 00:45:17"} 
[2026-09-25 00:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 00:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 01:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 00:45:17","page":1} 
[2026-09-25 01:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 00:00:18","window_to":"2026-09-25 01:00:18"} 
[2026-09-25 01:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 01:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 01:00:37] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-25 00:00:37","window_to":"2026-09-25 01:00:37"} 
[2026-09-25 01:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 00:15:15","window_to":"2026-09-25 01:15:15"} 
[2026-09-25 01:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 01:00:18","page":1} 
[2026-09-25 01:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 01:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 01:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 00:30:16","window_to":"2026-09-25 01:30:16"} 
[2026-09-25 01:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 01:15:16","page":1} 
[2026-09-25 01:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 01:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 01:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 01:30:17","page":1} 
[2026-09-25 01:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 00:45:15","window_to":"2026-09-25 01:45:15"} 
[2026-09-25 01:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 01:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 02:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 01:00:17","window_to":"2026-09-25 02:00:17"} 
[2026-09-25 02:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 01:45:15","page":1} 
[2026-09-25 02:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 02:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 02:00:31] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-25 01:00:31","window_to":"2026-09-25 02:00:31"} 
[2026-09-25 02:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 02:00:17","page":1} 
[2026-09-25 02:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 01:15:15","window_to":"2026-09-25 02:15:15"} 
[2026-09-25 02:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 02:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 02:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 01:30:15","window_to":"2026-09-25 02:30:15"} 
[2026-09-25 02:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 02:15:15","page":1} 
[2026-09-25 02:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 02:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 02:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 02:30:16","page":1} 
[2026-09-25 02:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 01:45:14","window_to":"2026-09-25 02:45:15"} 
[2026-09-25 02:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 02:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 03:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 02:45:15","page":1} 
[2026-09-25 03:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 02:00:16","window_to":"2026-09-25 03:00:16"} 
[2026-09-25 03:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 03:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 03:00:30] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-25 02:00:30","window_to":"2026-09-25 03:00:30"} 
[2026-09-25 03:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 03:00:16","page":1} 
[2026-09-25 03:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 02:15:15","window_to":"2026-09-25 03:15:15"} 
[2026-09-25 03:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 03:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 03:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 02:30:16","window_to":"2026-09-25 03:30:16"} 
[2026-09-25 03:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 03:15:15","page":1} 
[2026-09-25 03:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 03:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 03:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 03:30:16","page":1} 
[2026-09-25 03:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 02:45:16","window_to":"2026-09-25 03:45:16"} 
[2026-09-25 03:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 03:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 04:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 03:00:16","window_to":"2026-09-25 04:00:16"} 
[2026-09-25 04:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 03:45:16","page":1} 
[2026-09-25 04:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 04:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 04:00:30] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-25 03:00:30","window_to":"2026-09-25 04:00:30"} 
[2026-09-25 04:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 04:00:17","page":1} 
[2026-09-25 04:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 03:15:15","window_to":"2026-09-25 04:15:15"} 
[2026-09-25 04:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 04:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 04:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 03:30:16","window_to":"2026-09-25 04:30:16"} 
[2026-09-25 04:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 04:15:15","page":1} 
[2026-09-25 04:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 04:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 04:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 04:30:17","page":1} 
[2026-09-25 04:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 03:45:14","window_to":"2026-09-25 04:45:15"} 
[2026-09-25 04:45:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 04:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 05:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 04:45:14","page":1} 
[2026-09-25 05:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 04:00:16","window_to":"2026-09-25 05:00:16"} 
[2026-09-25 05:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 05:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 05:00:29] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-25 04:00:29","window_to":"2026-09-25 05:00:29"} 
[2026-09-25 05:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 04:15:15","window_to":"2026-09-25 05:15:15"} 
[2026-09-25 05:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 05:00:16","page":1} 
[2026-09-25 05:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 05:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 05:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 04:30:20","window_to":"2026-09-25 05:30:20"} 
[2026-09-25 05:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 05:15:16","page":1} 
[2026-09-25 05:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 05:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 05:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 04:45:15","window_to":"2026-09-25 05:45:15"} 
[2026-09-25 05:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 05:30:20","page":1} 
[2026-09-25 05:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 05:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 06:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 05:00:16","window_to":"2026-09-25 06:00:16"} 
[2026-09-25 06:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 05:45:16","page":1} 
[2026-09-25 06:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 06:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 06:00:31] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-25 05:00:31","window_to":"2026-09-25 06:00:31"} 
[2026-09-25 06:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 05:15:14","window_to":"2026-09-25 06:15:14"} 
[2026-09-25 06:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 06:00:17","page":1} 
[2026-09-25 06:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 06:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 06:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 05:30:18","window_to":"2026-09-25 06:30:18"} 
[2026-09-25 06:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 06:15:16","page":1} 
[2026-09-25 06:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 06:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 06:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 05:45:15","window_to":"2026-09-25 06:45:15"} 
[2026-09-25 06:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 06:30:19","page":1} 
[2026-09-25 06:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 06:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 07:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 06:00:18","window_to":"2026-09-25 07:00:18"} 
[2026-09-25 07:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 06:45:15","page":1} 
[2026-09-25 07:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 07:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 07:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-25 06:00:34","window_to":"2026-09-25 07:00:34"} 
[2026-09-25 07:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 06:15:16","window_to":"2026-09-25 07:15:16"} 
[2026-09-25 07:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 07:00:20","page":1} 
[2026-09-25 07:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 07:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 07:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 06:30:18","window_to":"2026-09-25 07:30:18"} 
[2026-09-25 07:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 07:15:16","page":1} 
[2026-09-25 07:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 07:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 07:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 07:30:19","page":1} 
[2026-09-25 07:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 06:45:18","window_to":"2026-09-25 07:45:18"} 
[2026-09-25 07:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 07:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 08:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 07:45:18","page":1} 
[2026-09-25 08:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 07:00:21","window_to":"2026-09-25 08:00:21"} 
[2026-09-25 08:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 08:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 08:00:40] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-25 07:00:40","window_to":"2026-09-25 08:00:40"} 
[2026-09-25 08:00:40] local.INFO: Payment reminders queued {"batches":1,"students":54} 
[2026-09-25 08:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 08:00:21","page":1} 
[2026-09-25 08:15:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 07:15:19","window_to":"2026-09-25 08:15:19"} 
[2026-09-25 08:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 08:15:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 08:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 08:15:19","page":1} 
[2026-09-25 08:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 07:30:19","window_to":"2026-09-25 08:30:19"} 
[2026-09-25 08:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 08:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 08:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 07:45:18","window_to":"2026-09-25 08:45:18"} 
[2026-09-25 08:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 08:30:19","page":1} 
[2026-09-25 08:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 08:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 09:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 08:45:19","page":1} 
[2026-09-25 09:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 08:00:21","window_to":"2026-09-25 09:00:21"} 
[2026-09-25 09:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 09:00:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 09:00:41] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-25 08:00:40","window_to":"2026-09-25 09:00:40"} 
[2026-09-25 09:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 09:00:21","page":1} 
[2026-09-25 09:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 08:15:18","window_to":"2026-09-25 09:15:18"} 
[2026-09-25 09:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 09:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 09:30:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 08:30:20","window_to":"2026-09-25 09:30:20"} 
[2026-09-25 09:30:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 09:15:18","page":1} 
[2026-09-25 09:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 09:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 09:45:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 09:30:21","page":1} 
[2026-09-25 09:45:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 08:45:20","window_to":"2026-09-25 09:45:20"} 
[2026-09-25 09:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 09:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 10:00:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 09:00:22","window_to":"2026-09-25 10:00:22"} 
[2026-09-25 10:00:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 09:45:20","page":1} 
[2026-09-25 10:00:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 10:00:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 10:00:41] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-25 09:00:41","window_to":"2026-09-25 10:00:41"} 
[2026-09-25 10:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 09:15:18","window_to":"2026-09-25 10:15:18"} 
[2026-09-25 10:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 10:00:23","page":1} 
[2026-09-25 10:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 10:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 10:30:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 10:15:19","page":1} 
[2026-09-25 10:30:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 09:30:23","window_to":"2026-09-25 10:30:24"} 
[2026-09-25 10:30:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 10:30:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 10:45:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 10:30:23","page":1} 
[2026-09-25 10:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 09:45:20","window_to":"2026-09-25 10:45:20"} 
[2026-09-25 10:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 10:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 11:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 10:45:20","page":1} 
[2026-09-25 11:00:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 10:00:21","window_to":"2026-09-25 11:00:22"} 
[2026-09-25 11:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 11:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 11:00:40] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-25 10:00:40","window_to":"2026-09-25 11:00:40"} 
[2026-09-25 11:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 11:00:20","page":1} 
[2026-09-25 11:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 10:15:18","window_to":"2026-09-25 11:15:18"} 
[2026-09-25 11:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 11:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 11:30:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 10:30:21","window_to":"2026-09-25 11:30:21"} 
[2026-09-25 11:30:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 11:15:18","page":1} 
[2026-09-25 11:30:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 11:30:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 11:45:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 10:45:20","window_to":"2026-09-25 11:45:21"} 
[2026-09-25 11:45:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 11:30:22","page":1} 
[2026-09-25 11:45:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 11:45:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 12:00:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 11:45:21","page":1} 
[2026-09-25 12:00:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 11:00:23","window_to":"2026-09-25 12:00:23"} 
[2026-09-25 12:00:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 12:00:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 12:00:44] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_25_12_00_44.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-25 12:00:45] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-25 11:00:44","window_to":"2026-09-25 12:00:44"} 
[2026-09-25 12:00:53] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_25_12_00_44.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-25 12:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 12:00:23","page":1} 
[2026-09-25 12:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 11:15:19","window_to":"2026-09-25 12:15:19"} 
[2026-09-25 12:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 12:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 12:30:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 12:15:18","page":1} 
[2026-09-25 12:30:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 11:30:21","window_to":"2026-09-25 12:30:21"} 
[2026-09-25 12:30:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 12:30:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 12:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 11:45:19","window_to":"2026-09-25 12:45:19"} 
[2026-09-25 12:45:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 12:30:22","page":1} 
[2026-09-25 12:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 12:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 13:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 12:00:20","window_to":"2026-09-25 13:00:20"} 
[2026-09-25 13:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 12:45:20","page":1} 
[2026-09-25 13:00:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 13:00:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 13:00:39] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-25 12:00:39","window_to":"2026-09-25 13:00:39"} 
[2026-09-25 13:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 12:15:16","window_to":"2026-09-25 13:15:16"} 
[2026-09-25 13:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 13:00:22","page":1} 
[2026-09-25 13:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 13:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 13:30:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 13:15:17","page":1} 
[2026-09-25 13:30:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 12:30:23","window_to":"2026-09-25 13:30:23"} 
[2026-09-25 13:30:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 13:30:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 13:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 12:45:19","window_to":"2026-09-25 13:45:19"} 
[2026-09-25 13:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 13:30:23","page":1} 
[2026-09-25 13:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 13:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 14:00:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 13:00:23","window_to":"2026-09-25 14:00:23"} 
[2026-09-25 14:00:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 13:45:19","page":1} 
[2026-09-25 14:00:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 14:00:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 14:00:43] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-25 13:00:43","window_to":"2026-09-25 14:00:43"} 
[2026-09-25 14:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 14:00:24","page":1} 
[2026-09-25 14:15:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 13:15:19","window_to":"2026-09-25 14:15:19"} 
[2026-09-25 14:15:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 14:15:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 14:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 14:15:19","page":1} 
[2026-09-25 14:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 13:30:19","window_to":"2026-09-25 14:30:19"} 
[2026-09-25 14:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 14:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 14:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 13:45:18","window_to":"2026-09-25 14:45:18"} 
[2026-09-25 14:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 14:30:18","page":1} 
[2026-09-25 14:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 14:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 15:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 14:00:20","window_to":"2026-09-25 15:00:20"} 
[2026-09-25 15:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 14:45:19","page":1} 
[2026-09-25 15:00:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 15:00:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 15:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-25 14:00:38","window_to":"2026-09-25 15:00:38"} 
[2026-09-25 15:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 14:15:17","window_to":"2026-09-25 15:15:17"} 
[2026-09-25 15:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 15:00:22","page":1} 
[2026-09-25 15:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 15:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 15:30:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 14:30:20","window_to":"2026-09-25 15:30:21"} 
[2026-09-25 15:30:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 15:15:18","page":1} 
[2026-09-25 15:30:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 15:30:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 15:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 14:45:18","window_to":"2026-09-25 15:45:18"} 
[2026-09-25 15:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 15:30:21","page":1} 
[2026-09-25 15:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 15:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 16:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 15:45:18","page":1} 
[2026-09-25 16:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 15:00:21","window_to":"2026-09-25 16:00:21"} 
[2026-09-25 16:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 16:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 16:00:37] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-25 15:00:37","window_to":"2026-09-25 16:00:37"} 
[2026-09-25 16:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 15:15:16","window_to":"2026-09-25 16:15:16"} 
[2026-09-25 16:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 16:00:21","page":1} 
[2026-09-25 16:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 16:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 16:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 16:15:17","page":1} 
[2026-09-25 16:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 15:30:20","window_to":"2026-09-25 16:30:20"} 
[2026-09-25 16:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 16:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 16:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 16:30:20","page":1} 
[2026-09-25 16:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 15:45:15","window_to":"2026-09-25 16:45:16"} 
[2026-09-25 16:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 16:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 16:47:36] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-25 16:47:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-25 16:47:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-25 16:47:50] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null}  
[2026-09-25 16:47:50] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1"}  
[2026-09-25 16:48:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-25 16:48:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-25 16:49:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-25 16:49:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-25 17:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 16:00:18","window_to":"2026-09-25 17:00:19"} 
[2026-09-25 17:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 16:45:16","page":1} 
[2026-09-25 17:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 17:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 17:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-25 16:00:35","window_to":"2026-09-25 17:00:35"} 
[2026-09-25 17:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 16:15:17","window_to":"2026-09-25 17:15:17"} 
[2026-09-25 17:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 17:00:19","page":1} 
[2026-09-25 17:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 17:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 17:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 17:15:19","page":1} 
[2026-09-25 17:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 16:30:17","window_to":"2026-09-25 17:30:17"} 
[2026-09-25 17:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 17:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 17:41:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-25 17:41:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-25 17:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 16:45:17","window_to":"2026-09-25 17:45:18"} 
[2026-09-25 17:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 17:30:17","page":1} 
[2026-09-25 17:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 17:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 18:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 17:45:18","page":1} 
[2026-09-25 18:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 17:00:20","window_to":"2026-09-25 18:00:20"} 
[2026-09-25 18:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 18:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 18:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-25 17:00:38","window_to":"2026-09-25 18:00:38"} 
[2026-09-25 18:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 17:15:17","window_to":"2026-09-25 18:15:17"} 
[2026-09-25 18:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 18:00:20","page":1} 
[2026-09-25 18:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 18:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 18:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 17:30:18","window_to":"2026-09-25 18:30:18"} 
[2026-09-25 18:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 18:15:17","page":1} 
[2026-09-25 18:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 18:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 18:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 18:30:19","page":1} 
[2026-09-25 18:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 17:45:18","window_to":"2026-09-25 18:45:18"} 
[2026-09-25 18:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 18:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 19:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 18:00:19","window_to":"2026-09-25 19:00:20"} 
[2026-09-25 19:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 18:45:17","page":1} 
[2026-09-25 19:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 19:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 19:00:35] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-25 18:00:35","window_to":"2026-09-25 19:00:35"} 
[2026-09-25 19:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 18:15:16","window_to":"2026-09-25 19:15:16"} 
[2026-09-25 19:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 19:00:20","page":1} 
[2026-09-25 19:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 19:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 19:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 18:30:20","window_to":"2026-09-25 19:30:20"} 
[2026-09-25 19:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 19:15:17","page":1} 
[2026-09-25 19:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 19:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 19:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 18:45:17","window_to":"2026-09-25 19:45:17"} 
[2026-09-25 19:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 19:30:20","page":1} 
[2026-09-25 19:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 19:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 20:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 19:00:19","window_to":"2026-09-25 20:00:19"} 
[2026-09-25 20:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 19:45:18","page":1} 
[2026-09-25 20:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 20:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 20:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-25 19:00:36","window_to":"2026-09-25 20:00:36"} 
[2026-09-25 20:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 19:15:16","window_to":"2026-09-25 20:15:16"} 
[2026-09-25 20:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 20:00:20","page":1} 
[2026-09-25 20:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 20:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 20:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 20:15:16","page":1} 
[2026-09-25 20:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 19:30:18","window_to":"2026-09-25 20:30:18"} 
[2026-09-25 20:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 20:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 20:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 19:45:17","window_to":"2026-09-25 20:45:17"} 
[2026-09-25 20:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 20:30:18","page":1} 
[2026-09-25 20:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 20:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 21:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 20:45:17","page":1} 
[2026-09-25 21:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 20:00:18","window_to":"2026-09-25 21:00:19"} 
[2026-09-25 21:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 21:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 21:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-25 20:00:34","window_to":"2026-09-25 21:00:34"} 
[2026-09-25 21:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 20:15:16","window_to":"2026-09-25 21:15:16"} 
[2026-09-25 21:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 21:00:18","page":1} 
[2026-09-25 21:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 21:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 21:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 20:30:18","window_to":"2026-09-25 21:30:18"} 
[2026-09-25 21:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 21:15:17","page":1} 
[2026-09-25 21:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 21:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 21:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 20:45:16","window_to":"2026-09-25 21:45:16"} 
[2026-09-25 21:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 21:30:18","page":1} 
[2026-09-25 21:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 21:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 22:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 21:00:19","window_to":"2026-09-25 22:00:19"} 
[2026-09-25 22:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 21:45:17","page":1} 
[2026-09-25 22:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 22:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 22:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-25 21:00:35","window_to":"2026-09-25 22:00:36"} 
[2026-09-25 22:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 22:00:19","page":1} 
[2026-09-25 22:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 21:15:17","window_to":"2026-09-25 22:15:17"} 
[2026-09-25 22:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 22:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 22:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 22:15:16","page":1} 
[2026-09-25 22:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 21:30:19","window_to":"2026-09-25 22:30:19"} 
[2026-09-25 22:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 22:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 22:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 22:30:19","page":1} 
[2026-09-25 22:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 21:45:17","window_to":"2026-09-25 22:45:17"} 
[2026-09-25 22:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 22:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 23:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 22:00:18","window_to":"2026-09-25 23:00:18"} 
[2026-09-25 23:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 22:45:17","page":1} 
[2026-09-25 23:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 23:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 23:00:35] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-25 22:00:35","window_to":"2026-09-25 23:00:35"} 
[2026-09-25 23:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 22:15:18","window_to":"2026-09-25 23:15:18"} 
[2026-09-25 23:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 23:00:19","page":1} 
[2026-09-25 23:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 23:15:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 23:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 22:30:19","window_to":"2026-09-25 23:30:19"} 
[2026-09-25 23:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 23:15:19","page":1} 
[2026-09-25 23:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 23:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-25 23:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 23:30:19","page":1} 
[2026-09-25 23:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 22:45:17","window_to":"2026-09-25 23:45:17"} 
[2026-09-25 23:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-25 23:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 00:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 23:00:20","window_to":"2026-09-26 00:00:20"} 
[2026-09-26 00:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-25 23:45:17","page":1} 
[2026-09-26 00:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 00:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 00:00:43] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-25 23:00:43","window_to":"2026-09-26 00:00:43"} 
[2026-09-26 00:00:44] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_26_00_00_43.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-26 00:00:44] local.INFO: Student payment status check queued {"batches":1,"students":54} 
[2026-09-26 00:00:47] local.INFO: Student payment status cron evaluated {"student_id":17,"admission_no":"26/000013","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:48] local.INFO: Student payment status cron evaluated {"student_id":5,"admission_no":"26/000001","outstanding_amount":24000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":8,"admission_no":"26/000004","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":9,"admission_no":"26/000005","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":13,"admission_no":"26/000009","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":14,"admission_no":"26/000010","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":16,"admission_no":"26/000012","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":20,"admission_no":"26/000016","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":22,"admission_no":"26/000018","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":23,"admission_no":"26/000019","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":26,"admission_no":"26/000022","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:52] local.INFO: Student payment status cron evaluated {"student_id":28,"admission_no":"26/000024","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:52] local.INFO: Student payment status cron evaluated {"student_id":31,"admission_no":"26/000027","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:52] local.INFO: Student payment status cron evaluated {"student_id":32,"admission_no":"26/000028","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:53] local.INFO: Student payment status cron evaluated {"student_id":33,"admission_no":"26/000029","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:53] local.INFO: Student payment status cron evaluated {"student_id":34,"admission_no":"26/000030","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:54] local.INFO: Student payment status cron evaluated {"student_id":35,"admission_no":"26/000031","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:54] local.INFO: Student payment status cron evaluated {"student_id":36,"admission_no":"26/000032","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:54] local.INFO: Student payment status cron evaluated {"student_id":37,"admission_no":"26/000033","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:55] local.INFO: Student payment status cron evaluated {"student_id":38,"admission_no":"26/000034","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:55] local.INFO: Student payment status cron evaluated {"student_id":39,"admission_no":"26/000035","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":40,"admission_no":"26/000036","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:56] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_26_00_00_43.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-26 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":43,"admission_no":"26/000039","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":44,"admission_no":"26/000040","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":45,"admission_no":"26/000041","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":46,"admission_no":"26/000042","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":47,"admission_no":"26/000043","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:57] local.INFO: Student payment status cron evaluated {"student_id":50,"admission_no":"26/000046","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:57] local.INFO: Student payment status cron evaluated {"student_id":51,"admission_no":"26/000047","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:57] local.INFO: Student payment status cron evaluated {"student_id":52,"admission_no":"26/000048","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:57] local.INFO: Student payment status cron evaluated {"student_id":53,"admission_no":"26/000049","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:57] local.INFO: Student payment status cron evaluated {"student_id":54,"admission_no":"26/000050","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:57] local.INFO: Student payment status cron evaluated {"student_id":55,"admission_no":"26/000051","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:57] local.INFO: Student payment status cron evaluated {"student_id":56,"admission_no":"26/000052","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:57] local.INFO: Student payment status cron evaluated {"student_id":57,"admission_no":"26/000053","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:57] local.INFO: Student payment status cron evaluated {"student_id":59,"admission_no":"26/000055","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:57] local.INFO: Student payment status cron evaluated {"student_id":61,"admission_no":"26/000057","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:57] local.INFO: Student payment status cron evaluated {"student_id":63,"admission_no":"26/000059","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:58] local.INFO: Student payment status cron evaluated {"student_id":64,"admission_no":"26/000060","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:58] local.INFO: Student payment status cron evaluated {"student_id":65,"admission_no":"26/000061","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:58] local.INFO: Student payment status cron evaluated {"student_id":66,"admission_no":"26/000062","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:58] local.INFO: Student payment status cron evaluated {"student_id":67,"admission_no":"26/000063","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:58] local.INFO: Student payment status cron evaluated {"student_id":68,"admission_no":"26/000064","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:58] local.INFO: Student payment status cron evaluated {"student_id":69,"admission_no":"26/000065","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:58] local.INFO: Student payment status cron evaluated {"student_id":70,"admission_no":"26/000066","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:58] local.INFO: Student payment status cron evaluated {"student_id":72,"admission_no":"26/000068","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:58] local.INFO: Student payment status cron evaluated {"student_id":73,"admission_no":"26/000069","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:58] local.INFO: Student payment status cron evaluated {"student_id":74,"admission_no":"26/000070","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:58] local.INFO: Student payment status cron evaluated {"student_id":75,"admission_no":"26/000071","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:58] local.INFO: Student payment status cron evaluated {"student_id":76,"admission_no":"26/000072","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:58] local.INFO: Student payment status cron evaluated {"student_id":77,"admission_no":"26/000073","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:58] local.INFO: Student payment status cron evaluated {"student_id":78,"admission_no":"26/000074","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:59] local.INFO: Student payment status cron evaluated {"student_id":79,"admission_no":"26/000075","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:00:59] local.INFO: Student payment status cron evaluated {"student_id":80,"admission_no":"26/000076","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-26 00:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 23:15:16","window_to":"2026-09-26 00:15:16"} 
[2026-09-26 00:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 00:00:21","page":1} 
[2026-09-26 00:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 00:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 00:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 00:15:17","page":1} 
[2026-09-26 00:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 23:30:18","window_to":"2026-09-26 00:30:19"} 
[2026-09-26 00:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 00:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 00:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-25 23:45:17","window_to":"2026-09-26 00:45:18"} 
[2026-09-26 00:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 00:30:19","page":1} 
[2026-09-26 00:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 00:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 01:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 00:45:18","page":1} 
[2026-09-26 01:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 00:00:20","window_to":"2026-09-26 01:00:20"} 
[2026-09-26 01:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 01:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 01:00:40] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-26 00:00:40","window_to":"2026-09-26 01:00:40"} 
[2026-09-26 01:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 01:00:21","page":1} 
[2026-09-26 01:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 00:15:17","window_to":"2026-09-26 01:15:17"} 
[2026-09-26 01:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 01:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 01:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 01:15:17","page":1} 
[2026-09-26 01:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 00:30:17","window_to":"2026-09-26 01:30:17"} 
[2026-09-26 01:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 01:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 01:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 00:45:17","window_to":"2026-09-26 01:45:17"} 
[2026-09-26 01:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 01:30:17","page":1} 
[2026-09-26 01:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 01:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 02:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 01:45:18","page":1} 
[2026-09-26 02:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 01:00:18","window_to":"2026-09-26 02:00:18"} 
[2026-09-26 02:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 02:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 02:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-26 01:00:33","window_to":"2026-09-26 02:00:33"} 
[2026-09-26 02:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 01:15:17","window_to":"2026-09-26 02:15:17"} 
[2026-09-26 02:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 02:00:18","page":1} 
[2026-09-26 02:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 02:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 02:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 02:15:18","page":1} 
[2026-09-26 02:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 01:30:17","window_to":"2026-09-26 02:30:17"} 
[2026-09-26 02:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 02:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 02:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 01:45:16","window_to":"2026-09-26 02:45:16"} 
[2026-09-26 02:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 02:30:17","page":1} 
[2026-09-26 02:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 02:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 03:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 02:45:17","page":1} 
[2026-09-26 03:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 02:00:19","window_to":"2026-09-26 03:00:19"} 
[2026-09-26 03:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 03:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 03:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-26 02:00:33","window_to":"2026-09-26 03:00:33"} 
[2026-09-26 03:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 02:15:15","window_to":"2026-09-26 03:15:15"} 
[2026-09-26 03:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 03:00:19","page":1} 
[2026-09-26 03:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 03:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 03:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 03:15:15","page":1} 
[2026-09-26 03:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 02:30:18","window_to":"2026-09-26 03:30:18"} 
[2026-09-26 03:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 03:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 03:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 03:30:18","page":1} 
[2026-09-26 03:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 02:45:15","window_to":"2026-09-26 03:45:15"} 
[2026-09-26 03:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 03:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 04:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 03:45:15","page":1} 
[2026-09-26 04:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 04:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 03:00:18","window_to":"2026-09-26 04:00:18"} 
[2026-09-26 04:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 04:00:33] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-26 03:00:33","window_to":"2026-09-26 04:00:33"} 
[2026-09-26 04:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 04:00:17","page":1} 
[2026-09-26 04:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 03:15:16","window_to":"2026-09-26 04:15:16"} 
[2026-09-26 04:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 04:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 04:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 04:15:16","page":1} 
[2026-09-26 04:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 03:30:17","window_to":"2026-09-26 04:30:17"} 
[2026-09-26 04:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 04:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 04:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 03:45:15","window_to":"2026-09-26 04:45:16"} 
[2026-09-26 04:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 04:30:17","page":1} 
[2026-09-26 04:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 04:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 05:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 04:00:18","window_to":"2026-09-26 05:00:18"} 
[2026-09-26 05:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 04:45:16","page":1} 
[2026-09-26 05:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 05:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 05:00:33] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-26 04:00:33","window_to":"2026-09-26 05:00:33"} 
[2026-09-26 05:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 04:15:15","window_to":"2026-09-26 05:15:15"} 
[2026-09-26 05:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 05:00:19","page":1} 
[2026-09-26 05:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 05:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 05:30:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 05:15:16","page":1} 
[2026-09-26 05:30:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 04:30:20","window_to":"2026-09-26 05:30:21"} 
[2026-09-26 05:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 05:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 05:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 04:45:15","window_to":"2026-09-26 05:45:15"} 
[2026-09-26 05:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 05:30:21","page":1} 
[2026-09-26 05:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 05:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 06:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 05:45:16","page":1} 
[2026-09-26 06:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 05:00:19","window_to":"2026-09-26 06:00:19"} 
[2026-09-26 06:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 06:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 06:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-26 05:00:33","window_to":"2026-09-26 06:00:34"} 
[2026-09-26 06:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 06:00:19","page":1} 
[2026-09-26 06:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 05:15:16","window_to":"2026-09-26 06:15:16"} 
[2026-09-26 06:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 06:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 06:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 05:30:17","window_to":"2026-09-26 06:30:17"} 
[2026-09-26 06:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 06:15:16","page":1} 
[2026-09-26 06:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 06:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 06:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 05:45:15","window_to":"2026-09-26 06:45:15"} 
[2026-09-26 06:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 06:30:18","page":1} 
[2026-09-26 06:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 06:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 07:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 06:00:19","window_to":"2026-09-26 07:00:19"} 
[2026-09-26 07:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 06:45:16","page":1} 
[2026-09-26 07:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 07:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 07:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-26 06:00:34","window_to":"2026-09-26 07:00:34"} 
[2026-09-26 07:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 07:00:19","page":1} 
[2026-09-26 07:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 06:15:16","window_to":"2026-09-26 07:15:16"} 
[2026-09-26 07:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 07:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 07:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 06:30:18","window_to":"2026-09-26 07:30:18"} 
[2026-09-26 07:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 07:15:16","page":1} 
[2026-09-26 07:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 07:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 07:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 07:30:19","page":1} 
[2026-09-26 07:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 06:45:15","window_to":"2026-09-26 07:45:16"} 
[2026-09-26 07:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 07:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 08:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 07:45:16","page":1} 
[2026-09-26 08:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 07:00:19","window_to":"2026-09-26 08:00:19"} 
[2026-09-26 08:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 08:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 08:00:37] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-26 07:00:36","window_to":"2026-09-26 08:00:37"} 
[2026-09-26 08:00:37] local.INFO: Payment reminders queued {"batches":1,"students":54} 
[2026-09-26 08:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 08:00:18","page":1} 
[2026-09-26 08:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 07:15:16","window_to":"2026-09-26 08:15:16"} 
[2026-09-26 08:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 08:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 08:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 07:30:19","window_to":"2026-09-26 08:30:19"} 
[2026-09-26 08:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 08:15:16","page":1} 
[2026-09-26 08:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 08:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 08:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 08:30:20","page":1} 
[2026-09-26 08:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 07:45:17","window_to":"2026-09-26 08:45:17"} 
[2026-09-26 08:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 08:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 09:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 08:45:17","page":1} 
[2026-09-26 09:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 08:00:21","window_to":"2026-09-26 09:00:21"} 
[2026-09-26 09:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 09:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 09:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-26 08:00:38","window_to":"2026-09-26 09:00:38"} 
[2026-09-26 09:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 09:00:20","page":1} 
[2026-09-26 09:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 08:15:18","window_to":"2026-09-26 09:15:18"} 
[2026-09-26 09:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 09:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 09:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 09:15:18","page":1} 
[2026-09-26 09:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 08:30:17","window_to":"2026-09-26 09:30:18"} 
[2026-09-26 09:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 09:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 09:45:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 09:30:18","page":1} 
[2026-09-26 09:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 08:45:19","window_to":"2026-09-26 09:45:19"} 
[2026-09-26 09:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 09:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 10:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 09:00:18","window_to":"2026-09-26 10:00:18"} 
[2026-09-26 10:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 09:45:20","page":1} 
[2026-09-26 10:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 10:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 10:00:35] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-26 09:00:35","window_to":"2026-09-26 10:00:35"} 
[2026-09-26 10:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 10:00:19","page":1} 
[2026-09-26 10:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 09:15:18","window_to":"2026-09-26 10:15:18"} 
[2026-09-26 10:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 10:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 10:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 09:30:18","window_to":"2026-09-26 10:30:18"} 
[2026-09-26 10:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 10:15:17","page":1} 
[2026-09-26 10:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 10:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 10:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 10:30:19","page":1} 
[2026-09-26 10:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 09:45:17","window_to":"2026-09-26 10:45:18"} 
[2026-09-26 10:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 10:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 11:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 10:45:17","page":1} 
[2026-09-26 11:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 10:00:19","window_to":"2026-09-26 11:00:19"} 
[2026-09-26 11:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 11:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 11:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-26 10:00:35","window_to":"2026-09-26 11:00:35"} 
[2026-09-26 11:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 10:15:16","window_to":"2026-09-26 11:15:16"} 
[2026-09-26 11:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 11:00:19","page":1} 
[2026-09-26 11:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 11:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 11:30:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 11:15:16","page":1} 
[2026-09-26 11:30:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 10:30:22","window_to":"2026-09-26 11:30:23"} 
[2026-09-26 11:30:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 11:30:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 11:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 10:45:17","window_to":"2026-09-26 11:45:17"} 
[2026-09-26 11:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 11:30:22","page":1} 
[2026-09-26 11:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 11:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 12:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 11:45:18","page":1} 
[2026-09-26 12:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 11:00:19","window_to":"2026-09-26 12:00:19"} 
[2026-09-26 12:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 12:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 12:00:38] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_26_12_00_38.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-26 12:00:39] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-26 11:00:39","window_to":"2026-09-26 12:00:39"} 
[2026-09-26 12:00:45] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_26_12_00_38.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-26 12:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 11:15:18","window_to":"2026-09-26 12:15:18"} 
[2026-09-26 12:15:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 12:00:19","page":1} 
[2026-09-26 12:15:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 12:15:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 12:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 12:15:19","page":1} 
[2026-09-26 12:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 11:30:19","window_to":"2026-09-26 12:30:19"} 
[2026-09-26 12:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 12:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 12:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 12:30:19","page":1} 
[2026-09-26 12:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 11:45:17","window_to":"2026-09-26 12:45:17"} 
[2026-09-26 12:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 12:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 13:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 12:00:20","window_to":"2026-09-26 13:00:20"} 
[2026-09-26 13:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 12:45:17","page":1} 
[2026-09-26 13:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 13:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 13:00:37] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-26 12:00:37","window_to":"2026-09-26 13:00:37"} 
[2026-09-26 13:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 12:15:17","window_to":"2026-09-26 13:15:18"} 
[2026-09-26 13:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 13:00:21","page":1} 
[2026-09-26 13:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 13:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 13:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 12:30:19","window_to":"2026-09-26 13:30:20"} 
[2026-09-26 13:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 13:15:18","page":1} 
[2026-09-26 13:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 13:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 13:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 13:30:20","page":1} 
[2026-09-26 13:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 12:45:18","window_to":"2026-09-26 13:45:18"} 
[2026-09-26 13:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 13:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 14:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 13:00:20","window_to":"2026-09-26 14:00:20"} 
[2026-09-26 14:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 13:45:18","page":1} 
[2026-09-26 14:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 14:00:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 14:00:39] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-26 13:00:39","window_to":"2026-09-26 14:00:39"} 
[2026-09-26 14:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 13:15:17","window_to":"2026-09-26 14:15:17"} 
[2026-09-26 14:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 14:00:21","page":1} 
[2026-09-26 14:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 14:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 14:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 13:30:19","window_to":"2026-09-26 14:30:20"} 
[2026-09-26 14:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 14:15:18","page":1} 
[2026-09-26 14:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 14:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 14:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 13:45:17","window_to":"2026-09-26 14:45:17"} 
[2026-09-26 14:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 14:30:20","page":1} 
[2026-09-26 14:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 14:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 15:00:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 14:00:21","window_to":"2026-09-26 15:00:21"} 
[2026-09-26 15:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 14:45:19","page":1} 
[2026-09-26 15:00:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 15:00:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 15:00:37] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-26 14:00:37","window_to":"2026-09-26 15:00:37"} 
[2026-09-26 15:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 15:00:22","page":1} 
[2026-09-26 15:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 14:15:17","window_to":"2026-09-26 15:15:17"} 
[2026-09-26 15:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 15:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 15:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 14:30:17","window_to":"2026-09-26 15:30:17"} 
[2026-09-26 15:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 15:15:17","page":1} 
[2026-09-26 15:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 15:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 15:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 14:45:18","window_to":"2026-09-26 15:45:18"} 
[2026-09-26 15:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 15:30:18","page":1} 
[2026-09-26 15:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 15:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 16:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 15:00:21","window_to":"2026-09-26 16:00:21"} 
[2026-09-26 16:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 15:45:19","page":1} 
[2026-09-26 16:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 16:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 16:00:39] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-26 15:00:38","window_to":"2026-09-26 16:00:38"} 
[2026-09-26 16:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 15:15:19","window_to":"2026-09-26 16:15:19"} 
[2026-09-26 16:15:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 16:00:22","page":1} 
[2026-09-26 16:15:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 16:15:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 16:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 16:15:19","page":1} 
[2026-09-26 16:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 15:30:19","window_to":"2026-09-26 16:30:19"} 
[2026-09-26 16:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 16:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 16:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 15:45:18","window_to":"2026-09-26 16:45:18"} 
[2026-09-26 16:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 16:30:19","page":1} 
[2026-09-26 16:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 16:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 17:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 16:00:20","window_to":"2026-09-26 17:00:20"} 
[2026-09-26 17:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 16:45:18","page":1} 
[2026-09-26 17:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 17:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 17:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-26 16:00:38","window_to":"2026-09-26 17:00:38"} 
[2026-09-26 17:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 17:00:21","page":1} 
[2026-09-26 17:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 16:15:19","window_to":"2026-09-26 17:15:19"} 
[2026-09-26 17:15:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 17:15:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 17:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 16:30:19","window_to":"2026-09-26 17:30:19"} 
[2026-09-26 17:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 17:15:19","page":1} 
[2026-09-26 17:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 17:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 17:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 17:30:19","page":1} 
[2026-09-26 17:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 16:45:17","window_to":"2026-09-26 17:45:17"} 
[2026-09-26 17:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 17:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 18:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 17:45:17","page":1} 
[2026-09-26 18:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 17:00:19","window_to":"2026-09-26 18:00:20"} 
[2026-09-26 18:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 18:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 18:00:35] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-26 17:00:35","window_to":"2026-09-26 18:00:35"} 
[2026-09-26 18:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 17:15:16","window_to":"2026-09-26 18:15:16"} 
[2026-09-26 18:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 18:00:19","page":1} 
[2026-09-26 18:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 18:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 18:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 18:15:17","page":1} 
[2026-09-26 18:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 17:30:19","window_to":"2026-09-26 18:30:19"} 
[2026-09-26 18:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 18:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 18:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 18:30:19","page":1} 
[2026-09-26 18:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 17:45:17","window_to":"2026-09-26 18:45:18"} 
[2026-09-26 18:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 18:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 19:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 18:00:19","window_to":"2026-09-26 19:00:19"} 
[2026-09-26 19:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 18:45:18","page":1} 
[2026-09-26 19:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 19:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 19:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-26 18:00:36","window_to":"2026-09-26 19:00:36"} 
[2026-09-26 19:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 19:00:20","page":1} 
[2026-09-26 19:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 18:15:17","window_to":"2026-09-26 19:15:17"} 
[2026-09-26 19:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 19:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 19:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 18:30:17","window_to":"2026-09-26 19:30:17"} 
[2026-09-26 19:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 19:15:17","page":1} 
[2026-09-26 19:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 19:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 19:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 18:45:16","window_to":"2026-09-26 19:45:16"} 
[2026-09-26 19:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 19:30:18","page":1} 
[2026-09-26 19:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 19:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 20:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 19:45:17","page":1} 
[2026-09-26 20:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 19:00:19","window_to":"2026-09-26 20:00:19"} 
[2026-09-26 20:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 20:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 20:00:35] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-26 19:00:35","window_to":"2026-09-26 20:00:35"} 
[2026-09-26 20:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 20:00:19","page":1} 
[2026-09-26 20:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 19:15:16","window_to":"2026-09-26 20:15:16"} 
[2026-09-26 20:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 20:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 20:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 20:15:15","page":1} 
[2026-09-26 20:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 19:30:19","window_to":"2026-09-26 20:30:19"} 
[2026-09-26 20:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 20:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 20:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 20:30:18","page":1} 
[2026-09-26 20:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 19:45:16","window_to":"2026-09-26 20:45:17"} 
[2026-09-26 20:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 20:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 21:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 20:45:16","page":1} 
[2026-09-26 21:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 20:00:19","window_to":"2026-09-26 21:00:19"} 
[2026-09-26 21:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 21:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 21:00:35] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-26 20:00:34","window_to":"2026-09-26 21:00:35"} 
[2026-09-26 21:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 21:00:19","page":1} 
[2026-09-26 21:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 20:15:16","window_to":"2026-09-26 21:15:16"} 
[2026-09-26 21:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 21:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 21:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 20:30:20","window_to":"2026-09-26 21:30:20"} 
[2026-09-26 21:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 21:15:16","page":1} 
[2026-09-26 21:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 21:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 21:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 20:45:17","window_to":"2026-09-26 21:45:17"} 
[2026-09-26 21:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 21:30:20","page":1} 
[2026-09-26 21:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 21:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 22:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 21:45:17","page":1} 
[2026-09-26 22:00:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 21:00:22","window_to":"2026-09-26 22:00:22"} 
[2026-09-26 22:00:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 22:00:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 22:00:39] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-26 21:00:38","window_to":"2026-09-26 22:00:38"} 
[2026-09-26 22:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 21:15:17","window_to":"2026-09-26 22:15:17"} 
[2026-09-26 22:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 22:00:22","page":1} 
[2026-09-26 22:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 22:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 22:30:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 21:30:22","window_to":"2026-09-26 22:30:23"} 
[2026-09-26 22:30:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 22:15:17","page":1} 
[2026-09-26 22:30:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 22:30:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 22:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 22:30:23","page":1} 
[2026-09-26 22:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 21:45:17","window_to":"2026-09-26 22:45:17"} 
[2026-09-26 22:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 22:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 23:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 22:45:17","page":1} 
[2026-09-26 23:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 22:00:19","window_to":"2026-09-26 23:00:19"} 
[2026-09-26 23:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 23:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 23:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-26 22:00:36","window_to":"2026-09-26 23:00:36"} 
[2026-09-26 23:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 22:15:17","window_to":"2026-09-26 23:15:17"} 
[2026-09-26 23:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 23:00:19","page":1} 
[2026-09-26 23:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 23:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 23:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 23:15:18","page":1} 
[2026-09-26 23:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 22:30:18","window_to":"2026-09-26 23:30:18"} 
[2026-09-26 23:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 23:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-26 23:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 23:30:18","page":1} 
[2026-09-26 23:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 22:45:17","window_to":"2026-09-26 23:45:17"} 
[2026-09-26 23:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-26 23:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 00:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-26 23:45:17","page":1} 
[2026-09-27 00:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 23:00:20","window_to":"2026-09-27 00:00:20"} 
[2026-09-27 00:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 00:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 00:00:38] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_27_00_00_38.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-27 00:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-26 23:00:38","window_to":"2026-09-27 00:00:38"} 
[2026-09-27 00:00:38] local.INFO: Student payment status check queued {"batches":1,"students":54} 
[2026-09-27 00:00:39] local.INFO: Student payment status cron evaluated {"student_id":17,"admission_no":"26/000013","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:40] local.INFO: Student payment status cron evaluated {"student_id":5,"admission_no":"26/000001","outstanding_amount":24000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:40] local.INFO: Student payment status cron evaluated {"student_id":8,"admission_no":"26/000004","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:40] local.INFO: Student payment status cron evaluated {"student_id":9,"admission_no":"26/000005","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:40] local.INFO: Student payment status cron evaluated {"student_id":13,"admission_no":"26/000009","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:41] local.INFO: Student payment status cron evaluated {"student_id":14,"admission_no":"26/000010","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:41] local.INFO: Student payment status cron evaluated {"student_id":16,"admission_no":"26/000012","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:41] local.INFO: Student payment status cron evaluated {"student_id":20,"admission_no":"26/000016","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:42] local.INFO: Student payment status cron evaluated {"student_id":22,"admission_no":"26/000018","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:42] local.INFO: Student payment status cron evaluated {"student_id":23,"admission_no":"26/000019","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:42] local.INFO: Student payment status cron evaluated {"student_id":26,"admission_no":"26/000022","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:43] local.INFO: Student payment status cron evaluated {"student_id":28,"admission_no":"26/000024","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:43] local.INFO: Student payment status cron evaluated {"student_id":31,"admission_no":"26/000027","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:44] local.INFO: Student payment status cron evaluated {"student_id":32,"admission_no":"26/000028","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:44] local.INFO: Student payment status cron evaluated {"student_id":33,"admission_no":"26/000029","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:44] local.INFO: Student payment status cron evaluated {"student_id":34,"admission_no":"26/000030","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:45] local.INFO: Student payment status cron evaluated {"student_id":35,"admission_no":"26/000031","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:45] local.INFO: Student payment status cron evaluated {"student_id":36,"admission_no":"26/000032","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:46] local.INFO: Student payment status cron evaluated {"student_id":37,"admission_no":"26/000033","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:46] local.INFO: Student payment status cron evaluated {"student_id":38,"admission_no":"26/000034","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:46] local.INFO: Student payment status cron evaluated {"student_id":39,"admission_no":"26/000035","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:47] local.INFO: Student payment status cron evaluated {"student_id":40,"admission_no":"26/000036","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:47] local.INFO: Student payment status cron evaluated {"student_id":43,"admission_no":"26/000039","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:47] local.INFO: Student payment status cron evaluated {"student_id":44,"admission_no":"26/000040","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:48] local.INFO: Student payment status cron evaluated {"student_id":45,"admission_no":"26/000041","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:48] local.INFO: Student payment status cron evaluated {"student_id":46,"admission_no":"26/000042","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:48] local.INFO: Student payment status cron evaluated {"student_id":47,"admission_no":"26/000043","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:48] local.INFO: Student payment status cron evaluated {"student_id":50,"admission_no":"26/000046","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:48] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_27_00_00_38.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-27 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":51,"admission_no":"26/000047","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":52,"admission_no":"26/000048","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":53,"admission_no":"26/000049","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":54,"admission_no":"26/000050","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":55,"admission_no":"26/000051","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":56,"admission_no":"26/000052","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":57,"admission_no":"26/000053","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":59,"admission_no":"26/000055","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":61,"admission_no":"26/000057","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":63,"admission_no":"26/000059","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":64,"admission_no":"26/000060","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":65,"admission_no":"26/000061","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":66,"admission_no":"26/000062","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":67,"admission_no":"26/000063","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":68,"admission_no":"26/000064","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":69,"admission_no":"26/000065","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":70,"admission_no":"26/000066","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":72,"admission_no":"26/000068","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":73,"admission_no":"26/000069","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":74,"admission_no":"26/000070","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":75,"admission_no":"26/000071","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":76,"admission_no":"26/000072","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":77,"admission_no":"26/000073","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":78,"admission_no":"26/000074","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":79,"admission_no":"26/000075","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":80,"admission_no":"26/000076","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-27 00:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 23:15:16","window_to":"2026-09-27 00:15:16"} 
[2026-09-27 00:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 00:00:20","page":1} 
[2026-09-27 00:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 00:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 00:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 23:30:18","window_to":"2026-09-27 00:30:18"} 
[2026-09-27 00:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 00:15:18","page":1} 
[2026-09-27 00:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 00:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 00:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 00:30:19","page":1} 
[2026-09-27 00:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-26 23:45:17","window_to":"2026-09-27 00:45:17"} 
[2026-09-27 00:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 00:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 01:00:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 00:00:21","window_to":"2026-09-27 01:00:21"} 
[2026-09-27 01:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 00:45:17","page":1} 
[2026-09-27 01:00:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 01:00:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 01:00:39] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-27 00:00:39","window_to":"2026-09-27 01:00:39"} 
[2026-09-27 01:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 00:15:17","window_to":"2026-09-27 01:15:17"} 
[2026-09-27 01:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 01:00:22","page":1} 
[2026-09-27 01:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 01:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 01:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 01:15:18","page":1} 
[2026-09-27 01:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 00:30:19","window_to":"2026-09-27 01:30:19"} 
[2026-09-27 01:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 01:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 01:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 00:45:17","window_to":"2026-09-27 01:45:17"} 
[2026-09-27 01:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 01:30:18","page":1} 
[2026-09-27 01:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 01:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 02:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 01:45:18","page":1} 
[2026-09-27 02:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 01:00:20","window_to":"2026-09-27 02:00:20"} 
[2026-09-27 02:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 02:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 02:00:38] local.INFO: JWT secrets rotated and runtime reloaded {"at":"2026-09-27 02:00:38"} 
[2026-09-27 02:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-27 01:00:38","window_to":"2026-09-27 02:00:38"} 
[2026-09-27 02:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 02:00:19","page":1} 
[2026-09-27 02:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 01:15:16","window_to":"2026-09-27 02:15:16"} 
[2026-09-27 02:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 02:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 02:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 01:30:16","window_to":"2026-09-27 02:30:16"} 
[2026-09-27 02:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 02:15:16","page":1} 
[2026-09-27 02:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 02:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 02:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 01:45:16","window_to":"2026-09-27 02:45:16"} 
[2026-09-27 02:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 02:30:18","page":1} 
[2026-09-27 02:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 02:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 03:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 02:00:18","window_to":"2026-09-27 03:00:18"} 
[2026-09-27 03:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 02:45:16","page":1} 
[2026-09-27 03:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 03:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 03:00:33] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-27 02:00:33","window_to":"2026-09-27 03:00:33"} 
[2026-09-27 03:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 03:00:18","page":1} 
[2026-09-27 03:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 02:15:16","window_to":"2026-09-27 03:15:16"} 
[2026-09-27 03:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 03:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 03:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 03:15:16","page":1} 
[2026-09-27 03:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 02:30:16","window_to":"2026-09-27 03:30:17"} 
[2026-09-27 03:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 03:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 03:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 03:30:16","page":1} 
[2026-09-27 03:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 03:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 03:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 02:45:18","window_to":"2026-09-27 03:45:18"} 
[2026-09-27 04:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 03:45:17","page":1} 
[2026-09-27 04:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 03:00:19","window_to":"2026-09-27 04:00:19"} 
[2026-09-27 04:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 04:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 04:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-27 03:00:34","window_to":"2026-09-27 04:00:34"} 
[2026-09-27 04:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 03:15:15","window_to":"2026-09-27 04:15:15"} 
[2026-09-27 04:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 04:00:19","page":1} 
[2026-09-27 04:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 04:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 04:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 04:15:15","page":1} 
[2026-09-27 04:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 03:30:17","window_to":"2026-09-27 04:30:17"} 
[2026-09-27 04:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 04:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 04:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 03:45:15","window_to":"2026-09-27 04:45:15"} 
[2026-09-27 04:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 04:30:17","page":1} 
[2026-09-27 04:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 04:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 05:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 04:45:15","page":1} 
[2026-09-27 05:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 04:00:18","window_to":"2026-09-27 05:00:18"} 
[2026-09-27 05:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 05:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 05:00:33] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-27 04:00:33","window_to":"2026-09-27 05:00:33"} 
[2026-09-27 05:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 04:15:16","window_to":"2026-09-27 05:15:16"} 
[2026-09-27 05:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 05:00:18","page":1} 
[2026-09-27 05:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 05:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 05:30:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 04:30:25","window_to":"2026-09-27 05:30:25"} 
[2026-09-27 05:30:26] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 05:15:16","page":1} 
[2026-09-27 05:30:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 05:30:28] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 05:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 05:30:26","page":1} 
[2026-09-27 05:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 04:45:15","window_to":"2026-09-27 05:45:15"} 
[2026-09-27 05:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 05:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 06:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 05:00:19","window_to":"2026-09-27 06:00:19"} 
[2026-09-27 06:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 05:45:15","page":1} 
[2026-09-27 06:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 06:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 06:00:33] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-27 05:00:33","window_to":"2026-09-27 06:00:33"} 
[2026-09-27 06:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 05:15:16","window_to":"2026-09-27 06:15:16"} 
[2026-09-27 06:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 06:00:19","page":1} 
[2026-09-27 06:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 06:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 06:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 06:15:16","page":1} 
[2026-09-27 06:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 05:30:18","window_to":"2026-09-27 06:30:18"} 
[2026-09-27 06:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 06:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 06:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 06:30:18","page":1} 
[2026-09-27 06:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 05:45:16","window_to":"2026-09-27 06:45:16"} 
[2026-09-27 06:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 06:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 07:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 06:45:16","page":1} 
[2026-09-27 07:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 06:00:19","window_to":"2026-09-27 07:00:20"} 
[2026-09-27 07:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 07:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 07:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-27 06:00:34","window_to":"2026-09-27 07:00:34"} 
[2026-09-27 07:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 07:00:18","page":1} 
[2026-09-27 07:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 06:15:18","window_to":"2026-09-27 07:15:18"} 
[2026-09-27 07:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 07:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 07:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 06:30:18","window_to":"2026-09-27 07:30:18"} 
[2026-09-27 07:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 07:15:17","page":1} 
[2026-09-27 07:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 07:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 07:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 07:30:19","page":1} 
[2026-09-27 07:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 06:45:16","window_to":"2026-09-27 07:45:16"} 
[2026-09-27 07:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 07:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 08:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 07:00:17","window_to":"2026-09-27 08:00:18"} 
[2026-09-27 08:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 07:45:16","page":1} 
[2026-09-27 08:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 08:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 08:00:35] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-27 07:00:34","window_to":"2026-09-27 08:00:35"} 
[2026-09-27 08:00:35] local.INFO: Payment reminders queued {"batches":1,"students":54} 
[2026-09-27 08:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 08:00:19","page":1} 
[2026-09-27 08:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 07:15:16","window_to":"2026-09-27 08:15:16"} 
[2026-09-27 08:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 08:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 08:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 07:30:19","window_to":"2026-09-27 08:30:20"} 
[2026-09-27 08:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 08:15:15","page":1} 
[2026-09-27 08:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 08:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 08:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 07:45:16","window_to":"2026-09-27 08:45:17"} 
[2026-09-27 08:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 08:30:20","page":1} 
[2026-09-27 08:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 08:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 09:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 08:45:17","page":1} 
[2026-09-27 09:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 08:00:20","window_to":"2026-09-27 09:00:20"} 
[2026-09-27 09:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 09:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 09:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-27 08:00:36","window_to":"2026-09-27 09:00:36"} 
[2026-09-27 09:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 09:00:20","page":1} 
[2026-09-27 09:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 08:15:16","window_to":"2026-09-27 09:15:16"} 
[2026-09-27 09:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 09:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 09:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 09:15:16","page":1} 
[2026-09-27 09:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 08:30:19","window_to":"2026-09-27 09:30:19"} 
[2026-09-27 09:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 09:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 09:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 08:45:18","window_to":"2026-09-27 09:45:18"} 
[2026-09-27 09:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 09:30:19","page":1} 
[2026-09-27 09:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 09:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 10:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 09:45:19","page":1} 
[2026-09-27 10:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 09:00:19","window_to":"2026-09-27 10:00:19"} 
[2026-09-27 10:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 10:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 10:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-27 09:00:36","window_to":"2026-09-27 10:00:36"} 
[2026-09-27 10:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 10:00:19","page":1} 
[2026-09-27 10:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 09:15:18","window_to":"2026-09-27 10:15:18"} 
[2026-09-27 10:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 10:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 10:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 10:15:18","page":1} 
[2026-09-27 10:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 09:30:17","window_to":"2026-09-27 10:30:17"} 
[2026-09-27 10:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 10:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 10:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 10:30:17","page":1} 
[2026-09-27 10:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 09:45:16","window_to":"2026-09-27 10:45:16"} 
[2026-09-27 10:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 10:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 11:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 10:45:16","page":1} 
[2026-09-27 11:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 10:00:19","window_to":"2026-09-27 11:00:19"} 
[2026-09-27 11:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 11:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 11:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-27 10:00:34","window_to":"2026-09-27 11:00:34"} 
[2026-09-27 11:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 11:00:19","page":1} 
[2026-09-27 11:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 10:15:17","window_to":"2026-09-27 11:15:17"} 
[2026-09-27 11:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 11:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 11:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 11:15:17","page":1} 
[2026-09-27 11:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 10:30:18","window_to":"2026-09-27 11:30:18"} 
[2026-09-27 11:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 11:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 11:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 11:30:18","page":1} 
[2026-09-27 11:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 10:45:16","window_to":"2026-09-27 11:45:16"} 
[2026-09-27 11:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 11:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 12:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 11:00:17","window_to":"2026-09-27 12:00:18"} 
[2026-09-27 12:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 11:45:16","page":1} 
[2026-09-27 12:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 12:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 12:00:36] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_27_12_00_36.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-27 12:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-27 11:00:36","window_to":"2026-09-27 12:00:36"} 
[2026-09-27 12:00:42] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_27_12_00_36.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-27 12:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 12:00:19","page":1} 
[2026-09-27 12:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 11:15:17","window_to":"2026-09-27 12:15:17"} 
[2026-09-27 12:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 12:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 12:30:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 11:30:21","window_to":"2026-09-27 12:30:21"} 
[2026-09-27 12:30:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 12:15:17","page":1} 
[2026-09-27 12:30:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 12:30:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 12:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 11:45:17","window_to":"2026-09-27 12:45:18"} 
[2026-09-27 12:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 12:30:21","page":1} 
[2026-09-27 12:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 12:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 13:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 12:00:21","window_to":"2026-09-27 13:00:21"} 
[2026-09-27 13:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 12:45:18","page":1} 
[2026-09-27 13:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 13:00:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 13:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-27 12:00:38","window_to":"2026-09-27 13:00:38"} 
[2026-09-27 13:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 13:00:22","page":1} 
[2026-09-27 13:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 12:15:16","window_to":"2026-09-27 13:15:16"} 
[2026-09-27 13:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 13:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 13:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 13:15:16","page":1} 
[2026-09-27 13:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 12:30:17","window_to":"2026-09-27 13:30:17"} 
[2026-09-27 13:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 13:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 13:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 13:30:17","page":1} 
[2026-09-27 13:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 12:45:17","window_to":"2026-09-27 13:45:17"} 
[2026-09-27 13:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 13:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 14:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 13:45:16","page":1} 
[2026-09-27 14:00:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 13:00:21","window_to":"2026-09-27 14:00:22"} 
[2026-09-27 14:00:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 14:00:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 14:00:39] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-27 13:00:39","window_to":"2026-09-27 14:00:39"} 
[2026-09-27 14:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 13:15:16","window_to":"2026-09-27 14:15:16"} 
[2026-09-27 14:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 14:00:22","page":1} 
[2026-09-27 14:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 14:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 14:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 14:15:17","page":1} 
[2026-09-27 14:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 13:30:20","window_to":"2026-09-27 14:30:20"} 
[2026-09-27 14:30:22] local.ERROR: ❌ Exception while polling TikTok leads {"error":"cURL error 35: OpenSSL/3.0.13: error:0A000438:SSL routines::tlsv1 alert internal error (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://business-api.tiktok.com/open_api/v1.3/page/leads/get/?filtering=%7B%22start_time%22%3A%222026-09-27%2014%3A15%3A17%22%7D&page=1&page_size=100"} 
[2026-09-27 14:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 14:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 14:30:20","page":1} 
[2026-09-27 14:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 13:45:16","window_to":"2026-09-27 14:45:16"} 
[2026-09-27 14:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 14:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 15:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 14:45:16","page":1} 
[2026-09-27 15:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 14:00:20","window_to":"2026-09-27 15:00:20"} 
[2026-09-27 15:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 15:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 15:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-27 14:00:36","window_to":"2026-09-27 15:00:36"} 
[2026-09-27 15:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 14:15:18","window_to":"2026-09-27 15:15:19"} 
[2026-09-27 15:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 15:00:20","page":1} 
[2026-09-27 15:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 15:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 15:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 15:15:19","page":1} 
[2026-09-27 15:30:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 14:30:20","window_to":"2026-09-27 15:30:20"} 
[2026-09-27 15:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 15:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 15:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 15:30:20","page":1} 
[2026-09-27 15:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 14:45:18","window_to":"2026-09-27 15:45:18"} 
[2026-09-27 15:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 15:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 16:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 15:45:18","page":1} 
[2026-09-27 16:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 15:00:20","window_to":"2026-09-27 16:00:20"} 
[2026-09-27 16:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 16:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 16:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-27 15:00:35","window_to":"2026-09-27 16:00:35"} 
[2026-09-27 16:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 15:15:16","window_to":"2026-09-27 16:15:16"} 
[2026-09-27 16:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 16:00:20","page":1} 
[2026-09-27 16:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 16:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 16:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 16:15:17","page":1} 
[2026-09-27 16:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 15:30:19","window_to":"2026-09-27 16:30:19"} 
[2026-09-27 16:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 16:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 16:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 16:30:18","page":1} 
[2026-09-27 16:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 15:45:17","window_to":"2026-09-27 16:45:17"} 
[2026-09-27 16:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 16:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 17:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 16:00:18","window_to":"2026-09-27 17:00:18"} 
[2026-09-27 17:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 16:45:17","page":1} 
[2026-09-27 17:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 17:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 17:00:35] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-27 16:00:34","window_to":"2026-09-27 17:00:35"} 
[2026-09-27 17:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 17:00:18","page":1} 
[2026-09-27 17:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 16:15:16","window_to":"2026-09-27 17:15:16"} 
[2026-09-27 17:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 17:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 17:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 16:30:18","window_to":"2026-09-27 17:30:18"} 
[2026-09-27 17:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 17:15:16","page":1} 
[2026-09-27 17:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 17:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 17:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 16:45:18","window_to":"2026-09-27 17:45:18"} 
[2026-09-27 17:45:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 17:30:18","page":1} 
[2026-09-27 17:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 17:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 18:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 17:00:19","window_to":"2026-09-27 18:00:19"} 
[2026-09-27 18:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 17:45:20","page":1} 
[2026-09-27 18:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 18:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 18:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-27 17:00:36","window_to":"2026-09-27 18:00:36"} 
[2026-09-27 18:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 17:15:17","window_to":"2026-09-27 18:15:17"} 
[2026-09-27 18:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 18:00:20","page":1} 
[2026-09-27 18:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 18:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 18:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 17:30:19","window_to":"2026-09-27 18:30:20"} 
[2026-09-27 18:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 18:15:18","page":1} 
[2026-09-27 18:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 18:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 18:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 18:30:20","page":1} 
[2026-09-27 18:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 17:45:18","window_to":"2026-09-27 18:45:18"} 
[2026-09-27 18:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 18:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 19:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 18:00:20","window_to":"2026-09-27 19:00:20"} 
[2026-09-27 19:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 18:45:18","page":1} 
[2026-09-27 19:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 19:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 19:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-27 18:00:36","window_to":"2026-09-27 19:00:36"} 
[2026-09-27 19:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 18:15:17","window_to":"2026-09-27 19:15:17"} 
[2026-09-27 19:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 19:00:20","page":1} 
[2026-09-27 19:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 19:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 19:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 18:30:19","window_to":"2026-09-27 19:30:19"} 
[2026-09-27 19:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 19:15:17","page":1} 
[2026-09-27 19:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 19:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 19:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 19:30:19","page":1} 
[2026-09-27 19:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 18:45:16","window_to":"2026-09-27 19:45:16"} 
[2026-09-27 19:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 19:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 20:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 19:45:16","page":1} 
[2026-09-27 20:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 19:00:19","window_to":"2026-09-27 20:00:19"} 
[2026-09-27 20:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 20:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 20:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-27 19:00:33","window_to":"2026-09-27 20:00:33"} 
[2026-09-27 20:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 19:15:16","window_to":"2026-09-27 20:15:16"} 
[2026-09-27 20:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 20:00:18","page":1} 
[2026-09-27 20:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 20:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 20:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 20:15:17","page":1} 
[2026-09-27 20:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 19:30:18","window_to":"2026-09-27 20:30:19"} 
[2026-09-27 20:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 20:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 20:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 20:30:19","page":1} 
[2026-09-27 20:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 19:45:16","window_to":"2026-09-27 20:45:16"} 
[2026-09-27 20:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 20:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 21:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 20:45:15","page":1} 
[2026-09-27 21:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 20:00:18","window_to":"2026-09-27 21:00:18"} 
[2026-09-27 21:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 21:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 21:00:33] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-27 20:00:32","window_to":"2026-09-27 21:00:33"} 
[2026-09-27 21:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 21:00:18","page":1} 
[2026-09-27 21:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 20:15:16","window_to":"2026-09-27 21:15:16"} 
[2026-09-27 21:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 21:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 21:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 20:30:19","window_to":"2026-09-27 21:30:19"} 
[2026-09-27 21:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 21:15:16","page":1} 
[2026-09-27 21:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 21:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 21:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 21:30:19","page":1} 
[2026-09-27 21:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 20:45:17","window_to":"2026-09-27 21:45:17"} 
[2026-09-27 21:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 21:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 22:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 21:00:20","window_to":"2026-09-27 22:00:21"} 
[2026-09-27 22:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 21:45:17","page":1} 
[2026-09-27 22:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 22:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 22:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-27 21:00:37","window_to":"2026-09-27 22:00:38"} 
[2026-09-27 22:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 22:00:21","page":1} 
[2026-09-27 22:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 21:15:17","window_to":"2026-09-27 22:15:17"} 
[2026-09-27 22:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 22:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 22:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 21:30:19","window_to":"2026-09-27 22:30:20"} 
[2026-09-27 22:30:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 22:15:16","page":1} 
[2026-09-27 22:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 22:30:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 22:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 22:30:21","page":1} 
[2026-09-27 22:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 21:45:18","window_to":"2026-09-27 22:45:18"} 
[2026-09-27 22:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 22:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 23:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 22:45:18","page":1} 
[2026-09-27 23:00:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 22:00:22","window_to":"2026-09-27 23:00:22"} 
[2026-09-27 23:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 23:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 23:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-27 22:00:35","window_to":"2026-09-27 23:00:35"} 
[2026-09-27 23:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 23:00:21","page":1} 
[2026-09-27 23:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 22:15:18","window_to":"2026-09-27 23:15:18"} 
[2026-09-27 23:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 23:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 23:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 22:30:18","window_to":"2026-09-27 23:30:18"} 
[2026-09-27 23:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 23:15:17","page":1} 
[2026-09-27 23:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 23:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-27 23:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 22:45:16","window_to":"2026-09-27 23:45:16"} 
[2026-09-27 23:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 23:30:19","page":1} 
[2026-09-27 23:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-27 23:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 00:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-27 23:45:17","page":1} 
[2026-09-28 00:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 23:00:18","window_to":"2026-09-28 00:00:19"} 
[2026-09-28 00:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 00:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 00:00:38] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_28_00_00_38.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-28 00:00:39] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-27 23:00:38","window_to":"2026-09-28 00:00:38"} 
[2026-09-28 00:00:39] local.INFO: Student payment status check queued {"batches":1,"students":54} 
[2026-09-28 00:00:40] local.INFO: Student payment status cron evaluated {"student_id":17,"admission_no":"26/000013","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:41] local.INFO: Student payment status cron evaluated {"student_id":5,"admission_no":"26/000001","outstanding_amount":24000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:41] local.INFO: Student payment status cron evaluated {"student_id":8,"admission_no":"26/000004","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:42] local.INFO: Student payment status cron evaluated {"student_id":9,"admission_no":"26/000005","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:42] local.INFO: Student payment status cron evaluated {"student_id":13,"admission_no":"26/000009","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:43] local.INFO: Student payment status cron evaluated {"student_id":14,"admission_no":"26/000010","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:43] local.INFO: Student payment status cron evaluated {"student_id":16,"admission_no":"26/000012","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:43] local.INFO: Student payment status cron evaluated {"student_id":20,"admission_no":"26/000016","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:44] local.INFO: Student payment status cron evaluated {"student_id":22,"admission_no":"26/000018","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:44] local.INFO: Student payment status cron evaluated {"student_id":23,"admission_no":"26/000019","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:45] local.INFO: Student payment status cron evaluated {"student_id":26,"admission_no":"26/000022","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:45] local.INFO: Student payment status cron evaluated {"student_id":28,"admission_no":"26/000024","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:46] local.INFO: Student payment status cron evaluated {"student_id":31,"admission_no":"26/000027","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:46] local.INFO: Student payment status cron evaluated {"student_id":32,"admission_no":"26/000028","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:46] local.INFO: Student payment status cron evaluated {"student_id":33,"admission_no":"26/000029","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:47] local.INFO: Student payment status cron evaluated {"student_id":34,"admission_no":"26/000030","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:47] local.INFO: Student payment status cron evaluated {"student_id":35,"admission_no":"26/000031","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:48] local.INFO: Student payment status cron evaluated {"student_id":36,"admission_no":"26/000032","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:48] local.INFO: Student payment status cron evaluated {"student_id":37,"admission_no":"26/000033","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:48] local.INFO: Student payment status cron evaluated {"student_id":38,"admission_no":"26/000034","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":39,"admission_no":"26/000035","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":40,"admission_no":"26/000036","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":43,"admission_no":"26/000039","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:50] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_28_00_00_38.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-28 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":44,"admission_no":"26/000040","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":45,"admission_no":"26/000041","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":46,"admission_no":"26/000042","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":47,"admission_no":"26/000043","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":50,"admission_no":"26/000046","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":51,"admission_no":"26/000047","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":52,"admission_no":"26/000048","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":53,"admission_no":"26/000049","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":54,"admission_no":"26/000050","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":55,"admission_no":"26/000051","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":56,"admission_no":"26/000052","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":57,"admission_no":"26/000053","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":59,"admission_no":"26/000055","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":61,"admission_no":"26/000057","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":63,"admission_no":"26/000059","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":64,"admission_no":"26/000060","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":65,"admission_no":"26/000061","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":66,"admission_no":"26/000062","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":67,"admission_no":"26/000063","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":68,"admission_no":"26/000064","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":69,"admission_no":"26/000065","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:52] local.INFO: Student payment status cron evaluated {"student_id":70,"admission_no":"26/000066","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:52] local.INFO: Student payment status cron evaluated {"student_id":72,"admission_no":"26/000068","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:52] local.INFO: Student payment status cron evaluated {"student_id":73,"admission_no":"26/000069","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:52] local.INFO: Student payment status cron evaluated {"student_id":74,"admission_no":"26/000070","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:52] local.INFO: Student payment status cron evaluated {"student_id":75,"admission_no":"26/000071","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:52] local.INFO: Student payment status cron evaluated {"student_id":76,"admission_no":"26/000072","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:52] local.INFO: Student payment status cron evaluated {"student_id":77,"admission_no":"26/000073","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:52] local.INFO: Student payment status cron evaluated {"student_id":78,"admission_no":"26/000074","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:52] local.INFO: Student payment status cron evaluated {"student_id":79,"admission_no":"26/000075","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:00:52] local.INFO: Student payment status cron evaluated {"student_id":80,"admission_no":"26/000076","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-28 00:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 00:00:19","page":1} 
[2026-09-28 00:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 23:15:18","window_to":"2026-09-28 00:15:18"} 
[2026-09-28 00:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 00:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 00:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 00:15:17","page":1} 
[2026-09-28 00:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 23:30:18","window_to":"2026-09-28 00:30:19"} 
[2026-09-28 00:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 00:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 00:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 00:30:18","page":1} 
[2026-09-28 00:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-27 23:45:18","window_to":"2026-09-28 00:45:18"} 
[2026-09-28 00:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 00:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 01:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 00:00:20","window_to":"2026-09-28 01:00:20"} 
[2026-09-28 01:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 00:45:18","page":1} 
[2026-09-28 01:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 01:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 01:00:39] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-28 00:00:39","window_to":"2026-09-28 01:00:39"} 
[2026-09-28 01:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 01:00:21","page":1} 
[2026-09-28 01:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 00:15:16","window_to":"2026-09-28 01:15:16"} 
[2026-09-28 01:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 01:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 01:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 01:15:16","page":1} 
[2026-09-28 01:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 00:30:17","window_to":"2026-09-28 01:30:17"} 
[2026-09-28 01:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 01:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 01:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 00:45:15","window_to":"2026-09-28 01:45:15"} 
[2026-09-28 01:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 01:30:17","page":1} 
[2026-09-28 01:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 01:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 02:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 01:45:16","page":1} 
[2026-09-28 02:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 01:00:20","window_to":"2026-09-28 02:00:20"} 
[2026-09-28 02:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 02:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 02:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-28 01:00:34","window_to":"2026-09-28 02:00:34"} 
[2026-09-28 02:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 01:15:15","window_to":"2026-09-28 02:15:15"} 
[2026-09-28 02:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 02:00:20","page":1} 
[2026-09-28 02:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 02:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 02:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 02:15:16","page":1} 
[2026-09-28 02:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 01:30:19","window_to":"2026-09-28 02:30:19"} 
[2026-09-28 02:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 02:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 02:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 01:45:16","window_to":"2026-09-28 02:45:16"} 
[2026-09-28 02:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 02:30:19","page":1} 
[2026-09-28 02:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 02:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 03:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 02:45:16","page":1} 
[2026-09-28 03:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 02:00:19","window_to":"2026-09-28 03:00:19"} 
[2026-09-28 03:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 03:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 03:00:32] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-28 02:00:31","window_to":"2026-09-28 03:00:32"} 
[2026-09-28 03:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 02:15:15","window_to":"2026-09-28 03:15:16"} 
[2026-09-28 03:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 03:00:18","page":1} 
[2026-09-28 03:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 03:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 03:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 03:15:16","page":1} 
[2026-09-28 03:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 02:30:17","window_to":"2026-09-28 03:30:17"} 
[2026-09-28 03:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 03:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 03:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 03:30:16","page":1} 
[2026-09-28 03:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 02:45:15","window_to":"2026-09-28 03:45:16"} 
[2026-09-28 03:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 03:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 04:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 03:45:16","page":1} 
[2026-09-28 04:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 03:00:17","window_to":"2026-09-28 04:00:18"} 
[2026-09-28 04:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 04:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 04:00:32] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-28 03:00:32","window_to":"2026-09-28 04:00:32"} 
[2026-09-28 04:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 04:00:17","page":1} 
[2026-09-28 04:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 03:15:17","window_to":"2026-09-28 04:15:17"} 
[2026-09-28 04:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 04:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 04:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 03:30:16","window_to":"2026-09-28 04:30:16"} 
[2026-09-28 04:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 04:15:18","page":1} 
[2026-09-28 04:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 04:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 04:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 03:45:15","window_to":"2026-09-28 04:45:15"} 
[2026-09-28 04:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 04:30:17","page":1} 
[2026-09-28 04:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 04:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 05:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 04:00:19","window_to":"2026-09-28 05:00:19"} 
[2026-09-28 05:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 04:45:15","page":1} 
[2026-09-28 05:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 05:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 05:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-28 04:00:36","window_to":"2026-09-28 05:00:36"} 
[2026-09-28 05:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 04:15:15","window_to":"2026-09-28 05:15:15"} 
[2026-09-28 05:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 05:00:21","page":1} 
[2026-09-28 05:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 05:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 05:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 05:15:16","page":1} 
[2026-09-28 05:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 04:30:20","window_to":"2026-09-28 05:30:20"} 
[2026-09-28 05:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 05:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 05:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 05:30:20","page":1} 
[2026-09-28 05:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 04:45:15","window_to":"2026-09-28 05:45:15"} 
[2026-09-28 05:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 05:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 06:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 05:00:17","window_to":"2026-09-28 06:00:17"} 
[2026-09-28 06:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 05:45:15","page":1} 
[2026-09-28 06:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 06:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 06:00:33] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-28 05:00:32","window_to":"2026-09-28 06:00:33"} 
[2026-09-28 06:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 06:00:18","page":1} 
[2026-09-28 06:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 05:15:17","window_to":"2026-09-28 06:15:17"} 
[2026-09-28 06:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 06:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 06:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 06:15:16","page":1} 
[2026-09-28 06:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 05:30:17","window_to":"2026-09-28 06:30:17"} 
[2026-09-28 06:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 06:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 06:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 05:45:17","window_to":"2026-09-28 06:45:17"} 
[2026-09-28 06:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 06:30:17","page":1} 
[2026-09-28 06:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 06:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 07:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 06:00:17","window_to":"2026-09-28 07:00:17"} 
[2026-09-28 07:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 06:45:18","page":1} 
[2026-09-28 07:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 07:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 07:00:33] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-28 06:00:32","window_to":"2026-09-28 07:00:32"} 
[2026-09-28 07:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 07:00:18","page":1} 
[2026-09-28 07:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 06:15:17","window_to":"2026-09-28 07:15:17"} 
[2026-09-28 07:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 07:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 07:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 07:15:18","page":1} 
[2026-09-28 07:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 06:30:20","window_to":"2026-09-28 07:30:20"} 
[2026-09-28 07:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 07:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 07:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 07:30:19","page":1} 
[2026-09-28 07:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 06:45:18","window_to":"2026-09-28 07:45:18"} 
[2026-09-28 07:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 07:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 08:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 07:45:18","page":1} 
[2026-09-28 08:00:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 07:00:21","window_to":"2026-09-28 08:00:21"} 
[2026-09-28 08:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 08:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 08:00:41] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-28 07:00:41","window_to":"2026-09-28 08:00:41"} 
[2026-09-28 08:00:41] local.INFO: Payment reminders queued {"batches":1,"students":54} 
[2026-09-28 08:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 07:15:18","window_to":"2026-09-28 08:15:18"} 
[2026-09-28 08:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 08:00:21","page":1} 
[2026-09-28 08:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 08:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 08:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 08:15:19","page":1} 
[2026-09-28 08:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 07:30:19","window_to":"2026-09-28 08:30:19"} 
[2026-09-28 08:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 08:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 08:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 08:30:19","page":1} 
[2026-09-28 08:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 07:45:18","window_to":"2026-09-28 08:45:18"} 
[2026-09-28 08:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 08:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 09:00:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 08:45:18","page":1} 
[2026-09-28 09:00:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 08:00:24","window_to":"2026-09-28 09:00:25"} 
[2026-09-28 09:00:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 09:00:27] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 09:00:44] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-28 08:00:43","window_to":"2026-09-28 09:00:44"} 
[2026-09-28 09:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 08:15:19","window_to":"2026-09-28 09:15:19"} 
[2026-09-28 09:15:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 09:00:24","page":1} 
[2026-09-28 09:15:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 09:15:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 09:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 08:30:20","window_to":"2026-09-28 09:30:20"} 
[2026-09-28 09:30:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 09:15:20","page":1} 
[2026-09-28 09:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 09:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 09:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 08:45:19","window_to":"2026-09-28 09:45:19"} 
[2026-09-28 09:45:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 09:30:20","page":1} 
[2026-09-28 09:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 09:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 10:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 09:00:20","window_to":"2026-09-28 10:00:20"} 
[2026-09-28 10:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 09:45:19","page":1} 
[2026-09-28 10:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 10:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 10:00:37] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-28 09:00:37","window_to":"2026-09-28 10:00:37"} 
[2026-09-28 10:15:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 10:00:21","page":1} 
[2026-09-28 10:15:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 09:15:19","window_to":"2026-09-28 10:15:19"} 
[2026-09-28 10:15:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 10:15:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 10:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 10:15:19","page":1} 
[2026-09-28 10:30:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 09:30:21","window_to":"2026-09-28 10:30:21"} 
[2026-09-28 10:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 10:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 10:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 09:45:19","window_to":"2026-09-28 10:45:20"} 
[2026-09-28 10:45:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 10:30:20","page":1} 
[2026-09-28 10:45:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 10:45:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 11:00:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 10:00:21","window_to":"2026-09-28 11:00:21"} 
[2026-09-28 11:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 10:45:21","page":1} 
[2026-09-28 11:00:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 11:00:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 11:00:39] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-28 10:00:38","window_to":"2026-09-28 11:00:38"} 
[2026-09-28 11:15:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 10:15:20","window_to":"2026-09-28 11:15:21"} 
[2026-09-28 11:15:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 11:00:22","page":1} 
[2026-09-28 11:15:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 11:15:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 11:30:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 10:30:21","window_to":"2026-09-28 11:30:21"} 
[2026-09-28 11:30:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 11:15:21","page":1} 
[2026-09-28 11:30:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 11:30:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 11:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 10:45:19","window_to":"2026-09-28 11:45:19"} 
[2026-09-28 11:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 11:30:22","page":1} 
[2026-09-28 11:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 11:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 12:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 11:45:19","page":1} 
[2026-09-28 12:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 11:00:21","window_to":"2026-09-28 12:00:21"} 
[2026-09-28 12:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 12:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 12:00:42] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-28 11:00:41","window_to":"2026-09-28 12:00:41"} 
[2026-09-28 12:00:42] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_28_12_00_42.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-28 12:00:49] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_28_12_00_42.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-28 12:15:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 12:00:21","page":1} 
[2026-09-28 12:15:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 11:15:21","window_to":"2026-09-28 12:15:21"} 
[2026-09-28 12:15:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 12:15:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 12:30:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 12:15:20","page":1} 
[2026-09-28 12:30:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 11:30:22","window_to":"2026-09-28 12:30:22"} 
[2026-09-28 12:30:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 12:30:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 12:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 11:45:18","window_to":"2026-09-28 12:45:18"} 
[2026-09-28 12:45:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 12:30:22","page":1} 
[2026-09-28 12:45:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 12:45:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 13:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 12:00:20","window_to":"2026-09-28 13:00:21"} 
[2026-09-28 13:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 12:45:20","page":1} 
[2026-09-28 13:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 13:00:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 13:00:41] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-28 12:00:41","window_to":"2026-09-28 13:00:41"} 
[2026-09-28 13:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 13:00:21","page":1} 
[2026-09-28 13:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 12:15:18","window_to":"2026-09-28 13:15:18"} 
[2026-09-28 13:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 13:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 13:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 12:30:20","window_to":"2026-09-28 13:30:20"} 
[2026-09-28 13:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 13:15:18","page":1} 
[2026-09-28 13:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 13:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 13:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 12:45:19","window_to":"2026-09-28 13:45:19"} 
[2026-09-28 13:45:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 13:30:20","page":1} 
[2026-09-28 13:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 13:45:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 14:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 13:00:20","window_to":"2026-09-28 14:00:20"} 
[2026-09-28 14:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 13:45:20","page":1} 
[2026-09-28 14:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 14:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 14:00:40] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-28 13:00:40","window_to":"2026-09-28 14:00:40"} 
[2026-09-28 14:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 14:00:20","page":1} 
[2026-09-28 14:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 13:15:19","window_to":"2026-09-28 14:15:19"} 
[2026-09-28 14:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 14:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 14:30:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 13:30:21","window_to":"2026-09-28 14:30:21"} 
[2026-09-28 14:30:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 14:15:18","page":1} 
[2026-09-28 14:30:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 14:30:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 14:45:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 14:30:22","page":1} 
[2026-09-28 14:45:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 13:45:20","window_to":"2026-09-28 14:45:20"} 
[2026-09-28 14:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 14:45:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 15:00:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 14:00:21","window_to":"2026-09-28 15:00:22"} 
[2026-09-28 15:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 14:45:20","page":1} 
[2026-09-28 15:00:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 15:00:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 15:00:40] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-28 14:00:40","window_to":"2026-09-28 15:00:40"} 
[2026-09-28 15:15:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 14:15:21","window_to":"2026-09-28 15:15:21"} 
[2026-09-28 15:15:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 15:00:22","page":1} 
[2026-09-28 15:15:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 15:15:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 15:30:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 14:30:20","window_to":"2026-09-28 15:30:21"} 
[2026-09-28 15:30:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 15:15:21","page":1} 
[2026-09-28 15:30:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 15:30:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 15:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 15:30:21","page":1} 
[2026-09-28 15:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 14:45:17","window_to":"2026-09-28 15:45:17"} 
[2026-09-28 15:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 15:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 16:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 15:00:20","window_to":"2026-09-28 16:00:20"} 
[2026-09-28 16:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 15:45:17","page":1} 
[2026-09-28 16:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 16:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 16:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-28 15:00:37","window_to":"2026-09-28 16:00:37"} 
[2026-09-28 16:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 16:00:21","page":1} 
[2026-09-28 16:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 15:15:17","window_to":"2026-09-28 16:15:17"} 
[2026-09-28 16:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 16:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 16:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 16:15:17","page":1} 
[2026-09-28 16:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 15:30:20","window_to":"2026-09-28 16:30:20"} 
[2026-09-28 16:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 16:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 16:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 16:30:19","page":1} 
[2026-09-28 16:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 15:45:18","window_to":"2026-09-28 16:45:18"} 
[2026-09-28 16:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 16:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 17:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 16:45:18","page":1} 
[2026-09-28 17:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 16:00:20","window_to":"2026-09-28 17:00:20"} 
[2026-09-28 17:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 17:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 17:00:37] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-28 16:00:36","window_to":"2026-09-28 17:00:37"} 
[2026-09-28 17:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 16:15:17","window_to":"2026-09-28 17:15:17"} 
[2026-09-28 17:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 17:00:20","page":1} 
[2026-09-28 17:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 17:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 17:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 17:15:18","page":1} 
[2026-09-28 17:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 16:30:19","window_to":"2026-09-28 17:30:19"} 
[2026-09-28 17:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 17:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 17:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 16:45:18","window_to":"2026-09-28 17:45:18"} 
[2026-09-28 17:45:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 17:30:18","page":1} 
[2026-09-28 17:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 17:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 18:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 17:45:20","page":1} 
[2026-09-28 18:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 17:00:20","window_to":"2026-09-28 18:00:20"} 
[2026-09-28 18:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 18:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 18:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-28 17:00:35","window_to":"2026-09-28 18:00:36"} 
[2026-09-28 18:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 17:15:17","window_to":"2026-09-28 18:15:17"} 
[2026-09-28 18:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 18:00:19","page":1} 
[2026-09-28 18:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 18:15:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 18:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 18:15:19","page":1} 
[2026-09-28 18:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 17:30:19","window_to":"2026-09-28 18:30:19"} 
[2026-09-28 18:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 18:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 18:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 18:30:19","page":1} 
[2026-09-28 18:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 17:45:17","window_to":"2026-09-28 18:45:17"} 
[2026-09-28 18:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 18:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 19:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 18:45:17","page":1} 
[2026-09-28 19:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 18:00:20","window_to":"2026-09-28 19:00:21"} 
[2026-09-28 19:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 19:00:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 19:00:40] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-28 18:00:40","window_to":"2026-09-28 19:00:40"} 
[2026-09-28 19:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 18:15:18","window_to":"2026-09-28 19:15:18"} 
[2026-09-28 19:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 19:00:21","page":1} 
[2026-09-28 19:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 19:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 19:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 19:15:18","page":1} 
[2026-09-28 19:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 18:30:18","window_to":"2026-09-28 19:30:18"} 
[2026-09-28 19:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 19:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 19:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 19:30:18","page":1} 
[2026-09-28 19:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 18:45:19","window_to":"2026-09-28 19:45:19"} 
[2026-09-28 19:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 19:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 20:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 19:45:19","page":1} 
[2026-09-28 20:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 19:00:20","window_to":"2026-09-28 20:00:20"} 
[2026-09-28 20:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 20:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 20:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-28 19:00:38","window_to":"2026-09-28 20:00:38"} 
[2026-09-28 20:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 20:00:19","page":1} 
[2026-09-28 20:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 19:15:17","window_to":"2026-09-28 20:15:17"} 
[2026-09-28 20:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 20:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 20:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 20:15:17","page":1} 
[2026-09-28 20:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 19:30:18","window_to":"2026-09-28 20:30:18"} 
[2026-09-28 20:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 20:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 20:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 19:45:17","window_to":"2026-09-28 20:45:17"} 
[2026-09-28 20:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 20:30:18","page":1} 
[2026-09-28 20:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 20:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 21:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 20:00:18","window_to":"2026-09-28 21:00:19"} 
[2026-09-28 21:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 20:45:17","page":1} 
[2026-09-28 21:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 21:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 21:00:35] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-28 20:00:35","window_to":"2026-09-28 21:00:35"} 
[2026-09-28 21:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 20:15:16","window_to":"2026-09-28 21:15:16"} 
[2026-09-28 21:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 21:00:19","page":1} 
[2026-09-28 21:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 21:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 21:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 21:15:16","page":1} 
[2026-09-28 21:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 20:30:18","window_to":"2026-09-28 21:30:18"} 
[2026-09-28 21:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 21:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 21:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 21:30:18","page":1} 
[2026-09-28 21:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 20:45:16","window_to":"2026-09-28 21:45:16"} 
[2026-09-28 21:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 21:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 22:00:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 21:00:21","window_to":"2026-09-28 22:00:21"} 
[2026-09-28 22:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 21:45:16","page":1} 
[2026-09-28 22:00:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 22:00:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 22:00:37] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-28 21:00:37","window_to":"2026-09-28 22:00:37"} 
[2026-09-28 22:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 21:15:16","window_to":"2026-09-28 22:15:16"} 
[2026-09-28 22:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 22:00:22","page":1} 
[2026-09-28 22:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 22:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 22:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 21:30:18","window_to":"2026-09-28 22:30:19"} 
[2026-09-28 22:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 22:15:17","page":1} 
[2026-09-28 22:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 22:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 22:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 22:30:19","page":1} 
[2026-09-28 22:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 21:45:16","window_to":"2026-09-28 22:45:16"} 
[2026-09-28 22:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 22:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 23:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 22:45:16","page":1} 
[2026-09-28 23:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 22:00:20","window_to":"2026-09-28 23:00:21"} 
[2026-09-28 23:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 23:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 23:00:37] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-28 22:00:37","window_to":"2026-09-28 23:00:37"} 
[2026-09-28 23:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 22:15:16","window_to":"2026-09-28 23:15:16"} 
[2026-09-28 23:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 23:00:21","page":1} 
[2026-09-28 23:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 23:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 23:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 23:15:17","page":1} 
[2026-09-28 23:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 22:30:18","window_to":"2026-09-28 23:30:18"} 
[2026-09-28 23:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 23:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-28 23:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 22:45:16","window_to":"2026-09-28 23:45:16"} 
[2026-09-28 23:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 23:30:18","page":1} 
[2026-09-28 23:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-28 23:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 00:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-28 23:45:17","page":1} 
[2026-09-29 00:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 23:00:20","window_to":"2026-09-29 00:00:20"} 
[2026-09-29 00:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 00:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 00:00:41] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_29_00_00_41.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-29 00:00:41] local.INFO: Student payment status check queued {"batches":1,"students":54} 
[2026-09-29 00:00:42] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-28 23:00:41","window_to":"2026-09-29 00:00:42"} 
[2026-09-29 00:00:45] local.INFO: Student payment status cron evaluated {"student_id":17,"admission_no":"26/000013","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:46] local.INFO: Student payment status cron evaluated {"student_id":5,"admission_no":"26/000001","outstanding_amount":24000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:46] local.INFO: Student payment status cron evaluated {"student_id":8,"admission_no":"26/000004","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:47] local.INFO: Student payment status cron evaluated {"student_id":9,"admission_no":"26/000005","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:47] local.INFO: Student payment status cron evaluated {"student_id":13,"admission_no":"26/000009","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:48] local.INFO: Student payment status cron evaluated {"student_id":14,"admission_no":"26/000010","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:48] local.INFO: Student payment status cron evaluated {"student_id":16,"admission_no":"26/000012","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:48] local.INFO: Student payment status cron evaluated {"student_id":20,"admission_no":"26/000016","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":22,"admission_no":"26/000018","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":23,"admission_no":"26/000019","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":26,"admission_no":"26/000022","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":28,"admission_no":"26/000024","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":31,"admission_no":"26/000027","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":32,"admission_no":"26/000028","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":33,"admission_no":"26/000029","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":34,"admission_no":"26/000030","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:52] local.INFO: Student payment status cron evaluated {"student_id":35,"admission_no":"26/000031","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:52] local.INFO: Student payment status cron evaluated {"student_id":36,"admission_no":"26/000032","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:52] local.INFO: Student payment status cron evaluated {"student_id":37,"admission_no":"26/000033","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:53] local.INFO: Student payment status cron evaluated {"student_id":38,"admission_no":"26/000034","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:53] local.INFO: Student payment status cron evaluated {"student_id":39,"admission_no":"26/000035","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:53] local.INFO: Student payment status cron evaluated {"student_id":40,"admission_no":"26/000036","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:53] local.INFO: Student payment status cron evaluated {"student_id":43,"admission_no":"26/000039","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:54] local.INFO: Student payment status cron evaluated {"student_id":44,"admission_no":"26/000040","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:54] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_29_00_00_41.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-29 00:00:54] local.INFO: Student payment status cron evaluated {"student_id":45,"admission_no":"26/000041","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:54] local.INFO: Student payment status cron evaluated {"student_id":46,"admission_no":"26/000042","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:54] local.INFO: Student payment status cron evaluated {"student_id":47,"admission_no":"26/000043","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:54] local.INFO: Student payment status cron evaluated {"student_id":50,"admission_no":"26/000046","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:54] local.INFO: Student payment status cron evaluated {"student_id":51,"admission_no":"26/000047","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:54] local.INFO: Student payment status cron evaluated {"student_id":52,"admission_no":"26/000048","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:55] local.INFO: Student payment status cron evaluated {"student_id":53,"admission_no":"26/000049","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:55] local.INFO: Student payment status cron evaluated {"student_id":54,"admission_no":"26/000050","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:55] local.INFO: Student payment status cron evaluated {"student_id":55,"admission_no":"26/000051","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:55] local.INFO: Student payment status cron evaluated {"student_id":56,"admission_no":"26/000052","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:55] local.INFO: Student payment status cron evaluated {"student_id":57,"admission_no":"26/000053","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:55] local.INFO: Student payment status cron evaluated {"student_id":59,"admission_no":"26/000055","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:55] local.INFO: Student payment status cron evaluated {"student_id":61,"admission_no":"26/000057","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:55] local.INFO: Student payment status cron evaluated {"student_id":63,"admission_no":"26/000059","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:55] local.INFO: Student payment status cron evaluated {"student_id":64,"admission_no":"26/000060","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":65,"admission_no":"26/000061","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":66,"admission_no":"26/000062","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":67,"admission_no":"26/000063","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":68,"admission_no":"26/000064","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":69,"admission_no":"26/000065","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":70,"admission_no":"26/000066","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":72,"admission_no":"26/000068","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":73,"admission_no":"26/000069","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":74,"admission_no":"26/000070","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":75,"admission_no":"26/000071","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":76,"admission_no":"26/000072","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":77,"admission_no":"26/000073","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":78,"admission_no":"26/000074","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":79,"admission_no":"26/000075","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":80,"admission_no":"26/000076","outstanding_amount":13500.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-29 00:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 23:15:16","window_to":"2026-09-29 00:15:16"} 
[2026-09-29 00:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 00:00:20","page":1} 
[2026-09-29 00:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 00:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 00:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 00:15:17","page":1} 
[2026-09-29 00:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 23:30:17","window_to":"2026-09-29 00:30:17"} 
[2026-09-29 00:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 00:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 00:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 00:30:17","page":1} 
[2026-09-29 00:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-28 23:45:16","window_to":"2026-09-29 00:45:16"} 
[2026-09-29 00:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 00:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 01:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 00:00:20","window_to":"2026-09-29 01:00:20"} 
[2026-09-29 01:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 00:45:16","page":1} 
[2026-09-29 01:00:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 01:00:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 01:00:41] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-29 00:00:41","window_to":"2026-09-29 01:00:41"} 
[2026-09-29 01:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 01:00:22","page":1} 
[2026-09-29 01:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 00:15:16","window_to":"2026-09-29 01:15:16"} 
[2026-09-29 01:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 01:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 01:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 01:15:16","page":1} 
[2026-09-29 01:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 00:30:17","window_to":"2026-09-29 01:30:17"} 
[2026-09-29 01:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 01:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 01:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 00:45:17","window_to":"2026-09-29 01:45:17"} 
[2026-09-29 01:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 01:30:17","page":1} 
[2026-09-29 01:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 01:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 02:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 01:00:17","window_to":"2026-09-29 02:00:17"} 
[2026-09-29 02:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 01:45:18","page":1} 
[2026-09-29 02:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 02:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 02:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-29 01:00:34","window_to":"2026-09-29 02:00:34"} 
[2026-09-29 02:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 02:00:19","page":1} 
[2026-09-29 02:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 01:15:15","window_to":"2026-09-29 02:15:15"} 
[2026-09-29 02:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 02:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 02:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 02:15:15","page":1} 
[2026-09-29 02:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 01:30:16","window_to":"2026-09-29 02:30:17"} 
[2026-09-29 02:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 02:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 02:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 01:45:16","window_to":"2026-09-29 02:45:16"} 
[2026-09-29 02:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 02:30:16","page":1} 
[2026-09-29 02:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 02:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 03:00:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 02:00:15","window_to":"2026-09-29 03:00:16"} 
[2026-09-29 03:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 02:45:17","page":1} 
[2026-09-29 03:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 03:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 03:00:32] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-29 02:00:31","window_to":"2026-09-29 03:00:31"} 
[2026-09-29 03:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 02:15:15","window_to":"2026-09-29 03:15:15"} 
[2026-09-29 03:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 03:00:17","page":1} 
[2026-09-29 03:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 03:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 03:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 03:15:16","page":1} 
[2026-09-29 03:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 02:30:17","window_to":"2026-09-29 03:30:17"} 
[2026-09-29 03:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 03:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 03:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 03:30:17","page":1} 
[2026-09-29 03:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 02:45:16","window_to":"2026-09-29 03:45:17"} 
[2026-09-29 03:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 03:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 04:00:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 03:45:17","page":1} 
[2026-09-29 04:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 03:00:17","window_to":"2026-09-29 04:00:17"} 
[2026-09-29 04:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 04:00:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 04:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-29 03:00:33","window_to":"2026-09-29 04:00:33"} 
[2026-09-29 04:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 04:00:17","page":1} 
[2026-09-29 04:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 03:15:17","window_to":"2026-09-29 04:15:17"} 
[2026-09-29 04:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 04:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 04:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 03:30:17","window_to":"2026-09-29 04:30:17"} 
[2026-09-29 04:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 04:15:17","page":1} 
[2026-09-29 04:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 04:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 04:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 03:45:15","window_to":"2026-09-29 04:45:15"} 
[2026-09-29 04:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 04:30:18","page":1} 
[2026-09-29 04:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 04:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 05:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 04:45:16","page":1} 
[2026-09-29 05:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 04:00:19","window_to":"2026-09-29 05:00:19"} 
[2026-09-29 05:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 05:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 05:00:33] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-29 04:00:33","window_to":"2026-09-29 05:00:33"} 
[2026-09-29 05:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 05:00:18","page":1} 
[2026-09-29 05:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 04:15:15","window_to":"2026-09-29 05:15:15"} 
[2026-09-29 05:15:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 05:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 05:30:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 04:30:21","window_to":"2026-09-29 05:30:21"} 
[2026-09-29 05:30:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 05:15:15","page":1} 
[2026-09-29 05:30:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 05:30:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 05:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 05:30:22","page":1} 
[2026-09-29 05:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 04:45:16","window_to":"2026-09-29 05:45:16"} 
[2026-09-29 05:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 05:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 06:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 05:45:16","page":1} 
[2026-09-29 06:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 05:00:18","window_to":"2026-09-29 06:00:18"} 
[2026-09-29 06:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 06:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 06:00:32] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-29 05:00:32","window_to":"2026-09-29 06:00:32"} 
[2026-09-29 06:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 05:15:17","window_to":"2026-09-29 06:15:17"} 
[2026-09-29 06:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 06:00:18","page":1} 
[2026-09-29 06:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 06:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 06:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 05:30:19","window_to":"2026-09-29 06:30:19"} 
[2026-09-29 06:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 06:15:18","page":1} 
[2026-09-29 06:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 06:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 06:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 06:30:20","page":1} 
[2026-09-29 06:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 05:45:17","window_to":"2026-09-29 06:45:17"} 
[2026-09-29 06:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 06:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 07:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 06:45:17","page":1} 
[2026-09-29 07:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 06:00:18","window_to":"2026-09-29 07:00:19"} 
[2026-09-29 07:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 07:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 07:00:33] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-29 06:00:33","window_to":"2026-09-29 07:00:33"} 
[2026-09-29 07:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 06:15:16","window_to":"2026-09-29 07:15:16"} 
[2026-09-29 07:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 07:00:19","page":1} 
[2026-09-29 07:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 07:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 07:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 07:15:17","page":1} 
[2026-09-29 07:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 06:30:18","window_to":"2026-09-29 07:30:18"} 
[2026-09-29 07:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 07:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 07:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 07:30:18","page":1} 
[2026-09-29 07:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 06:45:18","window_to":"2026-09-29 07:45:18"} 
[2026-09-29 07:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 07:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 08:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 07:45:18","page":1} 
[2026-09-29 08:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 07:00:19","window_to":"2026-09-29 08:00:19"} 
[2026-09-29 08:00:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 08:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 08:00:37] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-29 07:00:37","window_to":"2026-09-29 08:00:37"} 
[2026-09-29 08:00:38] local.INFO: Payment reminders queued {"batches":1,"students":54} 
[2026-09-29 08:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 07:15:16","window_to":"2026-09-29 08:15:16"} 
[2026-09-29 08:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 08:00:18","page":1} 
[2026-09-29 08:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 08:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 08:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 07:30:18","window_to":"2026-09-29 08:30:18"} 
[2026-09-29 08:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 08:15:17","page":1} 
[2026-09-29 08:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 08:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 08:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 07:45:17","window_to":"2026-09-29 08:45:17"} 
[2026-09-29 08:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 08:30:19","page":1} 
[2026-09-29 08:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 08:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 09:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 08:45:18","page":1} 
[2026-09-29 09:00:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 08:00:22","window_to":"2026-09-29 09:00:22"} 
[2026-09-29 09:00:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 09:00:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 09:00:42] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-29 08:00:42","window_to":"2026-09-29 09:00:42"} 
[2026-09-29 09:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 09:00:22","page":1} 
[2026-09-29 09:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 08:15:17","window_to":"2026-09-29 09:15:17"} 
[2026-09-29 09:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 09:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 09:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 09:15:17","page":1} 
[2026-09-29 09:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 08:30:19","window_to":"2026-09-29 09:30:19"} 
[2026-09-29 09:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 09:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 09:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 09:30:19","page":1} 
[2026-09-29 09:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 08:45:18","window_to":"2026-09-29 09:45:18"} 
[2026-09-29 09:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 09:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 10:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 09:45:18","page":1} 
[2026-09-29 10:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 09:00:19","window_to":"2026-09-29 10:00:19"} 
[2026-09-29 10:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 10:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 10:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-29 09:00:36","window_to":"2026-09-29 10:00:36"} 
[2026-09-29 10:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 09:15:17","window_to":"2026-09-29 10:15:17"} 
[2026-09-29 10:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 10:00:19","page":1} 
[2026-09-29 10:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 10:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 10:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 09:30:19","window_to":"2026-09-29 10:30:19"} 
[2026-09-29 10:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 10:15:18","page":1} 
[2026-09-29 10:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 10:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 10:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 09:45:18","window_to":"2026-09-29 10:45:18"} 
[2026-09-29 10:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 10:30:19","page":1} 
[2026-09-29 10:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 10:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 11:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 10:45:18","page":1} 
[2026-09-29 11:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 10:00:20","window_to":"2026-09-29 11:00:20"} 
[2026-09-29 11:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 11:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 11:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-29 10:00:38","window_to":"2026-09-29 11:00:38"} 
[2026-09-29 11:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 11:00:20","page":1} 
[2026-09-29 11:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 10:15:16","window_to":"2026-09-29 11:15:16"} 
[2026-09-29 11:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 11:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 11:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 10:30:19","window_to":"2026-09-29 11:30:19"} 
[2026-09-29 11:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 11:15:17","page":1} 
[2026-09-29 11:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 11:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 11:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 11:30:20","page":1} 
[2026-09-29 11:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 10:45:19","window_to":"2026-09-29 11:45:19"} 
[2026-09-29 11:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 11:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 12:00:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 11:00:21","window_to":"2026-09-29 12:00:22"} 
[2026-09-29 12:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 11:45:19","page":1} 
[2026-09-29 12:00:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 12:00:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 12:00:42] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_29_12_00_42.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-29 12:00:42] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-29 11:00:42","window_to":"2026-09-29 12:00:42"} 
[2026-09-29 12:00:49] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_29_12_00_42.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-29 12:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 12:00:22","page":1} 
[2026-09-29 12:15:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 11:15:20","window_to":"2026-09-29 12:15:20"} 
[2026-09-29 12:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 12:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 12:30:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 12:15:19","page":1} 
[2026-09-29 12:30:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 11:30:20","window_to":"2026-09-29 12:30:20"} 
[2026-09-29 12:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 12:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 12:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 12:30:20","page":1} 
[2026-09-29 12:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 11:45:19","window_to":"2026-09-29 12:45:19"} 
[2026-09-29 12:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 12:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 13:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 12:00:20","window_to":"2026-09-29 13:00:20"} 
[2026-09-29 13:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 12:45:19","page":1} 
[2026-09-29 13:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 13:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 13:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-29 12:00:38","window_to":"2026-09-29 13:00:38"} 
[2026-09-29 13:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 12:15:18","window_to":"2026-09-29 13:15:19"} 
[2026-09-29 13:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 13:00:21","page":1} 
[2026-09-29 13:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 13:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 13:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 12:30:17","window_to":"2026-09-29 13:30:17"} 
[2026-09-29 13:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 13:15:19","page":1} 
[2026-09-29 13:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 13:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 13:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 12:45:20","window_to":"2026-09-29 13:45:20"} 
[2026-09-29 13:45:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 13:30:18","page":1} 
[2026-09-29 13:45:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 13:45:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 14:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 13:00:20","window_to":"2026-09-29 14:00:20"} 
[2026-09-29 14:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 13:45:20","page":1} 
[2026-09-29 14:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 14:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 14:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-29 13:00:38","window_to":"2026-09-29 14:00:38"} 
[2026-09-29 14:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 13:15:18","window_to":"2026-09-29 14:15:18"} 
[2026-09-29 14:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 14:00:21","page":1} 
[2026-09-29 14:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 14:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 14:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 14:15:19","page":1} 
[2026-09-29 14:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 13:30:19","window_to":"2026-09-29 14:30:19"} 
[2026-09-29 14:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 14:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 14:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 14:30:19","page":1} 
[2026-09-29 14:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 13:45:16","window_to":"2026-09-29 14:45:16"} 
[2026-09-29 14:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 14:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 15:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 14:45:16","page":1} 
[2026-09-29 15:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 14:00:20","window_to":"2026-09-29 15:00:20"} 
[2026-09-29 15:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 15:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 15:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-29 14:00:37","window_to":"2026-09-29 15:00:37"} 
[2026-09-29 15:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 14:15:18","window_to":"2026-09-29 15:15:18"} 
[2026-09-29 15:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 15:00:20","page":1} 
[2026-09-29 15:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 15:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 15:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 14:30:18","window_to":"2026-09-29 15:30:18"} 
[2026-09-29 15:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 15:15:19","page":1} 
[2026-09-29 15:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 15:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 15:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 14:45:17","window_to":"2026-09-29 15:45:17"} 
[2026-09-29 15:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 15:30:18","page":1} 
[2026-09-29 15:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 15:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 16:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 15:00:21","window_to":"2026-09-29 16:00:21"} 
[2026-09-29 16:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 15:45:18","page":1} 
[2026-09-29 16:00:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 16:00:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 16:00:40] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-29 15:00:40","window_to":"2026-09-29 16:00:40"} 
[2026-09-29 16:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 15:15:17","window_to":"2026-09-29 16:15:17"} 
[2026-09-29 16:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 16:00:22","page":1} 
[2026-09-29 16:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 16:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 16:24:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:24:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:24:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:24:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:25:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:26:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:26:36] local.INFO: Workflow query: {"sql":"select \"leads\".*, (select count(*) from \"lead_activities\" where \"leads\".\"id\" = \"lead_activities\".\"lead_id\" and \"lead_activities\".\"deleted_at\" is null) as \"activities_count\", (select count(*) from \"crm_tasks\" where \"leads\".\"id\" = \"crm_tasks\".\"lead_id\" and \"task_type\" = ? and \"crm_tasks\".\"deleted_at\" is null) as \"follow_up_count\" from \"leads\" where \"leads\".\"deleted_at\" is null","bindings":["follow_up"]} 
[2026-09-29 16:26:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:27:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:27:33] local.INFO: Workflow query: {"sql":"select \"leads\".*, (select count(*) from \"lead_activities\" where \"leads\".\"id\" = \"lead_activities\".\"lead_id\" and \"lead_activities\".\"deleted_at\" is null) as \"activities_count\", (select count(*) from \"crm_tasks\" where \"leads\".\"id\" = \"crm_tasks\".\"lead_id\" and \"task_type\" = ? and \"crm_tasks\".\"deleted_at\" is null) as \"follow_up_count\" from \"leads\" where \"leads\".\"deleted_at\" is null","bindings":["follow_up"]} 
[2026-09-29 16:27:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:28:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:28:15] local.INFO: Workflow query: {"sql":"select \"leads\".*, (select count(*) from \"lead_activities\" where \"leads\".\"id\" = \"lead_activities\".\"lead_id\" and \"lead_activities\".\"deleted_at\" is null) as \"activities_count\", (select count(*) from \"crm_tasks\" where \"leads\".\"id\" = \"crm_tasks\".\"lead_id\" and \"task_type\" = ? and \"crm_tasks\".\"deleted_at\" is null) as \"follow_up_count\" from \"leads\" where \"leads\".\"deleted_at\" is null","bindings":["follow_up"]} 
[2026-09-29 16:28:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:29:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:29:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:30:14] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1"}  
[2026-09-29 16:30:15] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null}  
[2026-09-29 16:30:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 16:15:18","page":1} 
[2026-09-29 16:30:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 15:30:23","window_to":"2026-09-29 16:30:23"} 
[2026-09-29 16:30:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 16:30:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 16:30:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:31:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:31:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:32:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:32:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:33:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:33:18] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null}  
[2026-09-29 16:33:18] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1"}  
[2026-09-29 16:33:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:34:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:34:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:35:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:35:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:35:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:36:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:36:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:36:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:37:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:37:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:38:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:38:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:39:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:39:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:40:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:40:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:40:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:40:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:41:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:41:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:42:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:42:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:43:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:43:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:44:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:44:34] local.INFO: Entering getAllStudents route. Params: {"limit":"15","page":"1"}  
[2026-09-29 16:44:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:45:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 16:30:23","page":1} 
[2026-09-29 16:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 15:45:19","window_to":"2026-09-29 16:45:19"} 
[2026-09-29 16:45:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 16:45:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 16:45:24] local.INFO: Entering getAllStudents route. Params: {"limit":"15","page":"1"}  
[2026-09-29 16:45:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:45:55] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:46:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:47:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:47:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:48:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:48:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:49:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:49:50] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:50:09] local.INFO: Entering getAllStudents route. Params: {"limit":"15","page":"1"}  
[2026-09-29 16:50:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:50:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:51:18] local.INFO: Entering getAllStudents route. Params: {"limit":"15","page":"1"}  
[2026-09-29 16:51:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:51:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:52:23] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null}  
[2026-09-29 16:52:24] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1"}  
[2026-09-29 16:52:43] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:53:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:53:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:54:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:54:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:54:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:54:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:54:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:54:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:54:27] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null}  
[2026-09-29 16:54:27] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1"}  
[2026-09-29 16:54:32] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null}  
[2026-09-29 16:54:32] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1"}  
[2026-09-29 16:54:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:54:47] local.INFO: Getting Mobitel settings {"password_exists":false,"password_encrypted_value":"null","password_decrypted_length":0} 
[2026-09-29 16:54:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:55:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:55:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:55:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:56:02] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:56:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:56:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:57:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:57:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:57:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:57:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:57:41] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1"}  
[2026-09-29 16:57:41] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null}  
[2026-09-29 16:57:43] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:57:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:57:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:58:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:58:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:58:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:58:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:59:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:59:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:59:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:59:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:59:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:59:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 16:59:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:00:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:00:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 16:45:20","page":1} 
[2026-09-29 17:00:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 16:00:23","window_to":"2026-09-29 17:00:24"} 
[2026-09-29 17:00:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 17:00:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 17:00:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:00:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:00:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:00:43] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-29 16:00:43","window_to":"2026-09-29 17:00:43"} 
[2026-09-29 17:00:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:00:59] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:01:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:01:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:01:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:02:02] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:02:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:02:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:02:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:02:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:02:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:02:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:02:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:03:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:03:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:03:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:03:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:03:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:03:47] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:04:03] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:04:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:04:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:04:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:04:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:05:04] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:05:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:05:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:05:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:05:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:05:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:06:03] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:06:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:06:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:06:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:06:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:06:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:06:59] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:07:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:07:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:07:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:07:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:07:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:08:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:08:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:08:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:08:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:09:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:09:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:09:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:09:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:10:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:10:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:10:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:10:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:11:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:11:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:11:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:11:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:12:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:12:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:12:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:12:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:13:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:13:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:13:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:13:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:14:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:14:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:14:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:14:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 16:15:16","window_to":"2026-09-29 17:15:16"} 
[2026-09-29 17:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 17:00:24","page":1} 
[2026-09-29 17:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 17:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 17:15:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:15:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:16:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:16:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:16:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:16:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:17:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:17:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:18:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:18:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:19:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:19:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:21:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:21:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 17:15:17","page":1} 
[2026-09-29 17:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 16:30:19","window_to":"2026-09-29 17:30:20"} 
[2026-09-29 17:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 17:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 17:31:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:31:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:32:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:32:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:33:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:34:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:34:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:36:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:36:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:37:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:37:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:38:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:38:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:38:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:38:43] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:38:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:39:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:39:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:39:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:39:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:40:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:40:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:41:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:41:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:41:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:41:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:42:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:42:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:42:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:42:47] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:43:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:43:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:43:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:43:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:44:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:44:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:44:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:44:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 17:30:19","page":1} 
[2026-09-29 17:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 16:45:17","window_to":"2026-09-29 17:45:17"} 
[2026-09-29 17:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 17:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 17:45:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:45:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:45:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:46:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:46:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:46:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:46:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:47:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:47:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:47:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:47:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:48:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:48:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:48:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:48:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:49:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:49:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:49:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:50:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:50:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:50:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:51:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:51:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:51:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:51:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:52:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:52:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:52:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:52:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:53:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:53:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:54:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:54:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:56:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:56:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:57:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:57:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:58:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:58:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:58:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:59:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:59:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:59:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:59:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 17:59:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 17:00:20","window_to":"2026-09-29 18:00:21"} 
[2026-09-29 18:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 17:45:17","page":1} 
[2026-09-29 18:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 18:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 18:00:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:00:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:00:39] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-29 17:00:39","window_to":"2026-09-29 18:00:39"} 
[2026-09-29 18:00:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:01:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:01:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:01:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:01:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:02:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:02:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:02:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:02:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:03:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:03:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:03:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:03:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:04:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:04:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:04:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:04:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:05:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:05:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:06:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:06:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:06:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:07:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:07:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:07:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:07:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:08:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:08:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:08:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:09:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:09:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:09:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:09:47] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:11:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:11:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:12:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:12:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:13:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:13:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:14:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:14:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 17:15:18","window_to":"2026-09-29 18:15:18"} 
[2026-09-29 18:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 18:00:21","page":1} 
[2026-09-29 18:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 18:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 18:16:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:16:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:17:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:17:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:18:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:18:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:19:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:19:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:21:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:21:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:22:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:22:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:23:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:23:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:24:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:24:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:26:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:26:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:27:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:27:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:28:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:28:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:29:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:29:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 17:30:19","window_to":"2026-09-29 18:30:19"} 
[2026-09-29 18:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 18:15:19","page":1} 
[2026-09-29 18:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 18:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 18:31:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:31:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:32:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:32:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:33:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:33:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 18:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 17:45:17","window_to":"2026-09-29 18:45:17"} 
[2026-09-29 18:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 18:30:20","page":1} 
[2026-09-29 18:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 18:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 19:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 18:00:20","window_to":"2026-09-29 19:00:20"} 
[2026-09-29 19:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 18:45:17","page":1} 
[2026-09-29 19:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 19:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 19:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-29 18:00:37","window_to":"2026-09-29 19:00:37"} 
[2026-09-29 19:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 18:15:16","window_to":"2026-09-29 19:15:16"} 
[2026-09-29 19:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 19:00:21","page":1} 
[2026-09-29 19:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 19:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 19:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 19:15:16","page":1} 
[2026-09-29 19:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 18:30:18","window_to":"2026-09-29 19:30:18"} 
[2026-09-29 19:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 19:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 19:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 19:30:18","page":1} 
[2026-09-29 19:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 19:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 19:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 18:45:18","window_to":"2026-09-29 19:45:19"} 
[2026-09-29 20:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 19:00:20","window_to":"2026-09-29 20:00:20"} 
[2026-09-29 20:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 19:45:17","page":1} 
[2026-09-29 20:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 20:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 20:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-29 19:00:37","window_to":"2026-09-29 20:00:37"} 
[2026-09-29 20:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 20:00:21","page":1} 
[2026-09-29 20:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 19:15:17","window_to":"2026-09-29 20:15:17"} 
[2026-09-29 20:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 20:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 20:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 20:15:17","page":1} 
[2026-09-29 20:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 19:30:19","window_to":"2026-09-29 20:30:19"} 
[2026-09-29 20:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 20:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 20:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 20:30:19","page":1} 
[2026-09-29 20:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 19:45:18","window_to":"2026-09-29 20:45:18"} 
[2026-09-29 20:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 20:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 21:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 20:45:18","page":1} 
[2026-09-29 21:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 20:00:19","window_to":"2026-09-29 21:00:19"} 
[2026-09-29 21:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 21:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 21:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-29 20:00:35","window_to":"2026-09-29 21:00:36"} 
[2026-09-29 21:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 21:00:19","page":1} 
[2026-09-29 21:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 20:15:17","window_to":"2026-09-29 21:15:17"} 
[2026-09-29 21:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 21:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 21:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 21:15:17","page":1} 
[2026-09-29 21:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 20:30:18","window_to":"2026-09-29 21:30:18"} 
[2026-09-29 21:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 21:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 21:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 20:45:17","window_to":"2026-09-29 21:45:17"} 
[2026-09-29 21:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 21:30:18","page":1} 
[2026-09-29 21:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 21:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 21:47:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-29 22:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 21:45:18","page":1} 
[2026-09-29 22:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 21:00:21","window_to":"2026-09-29 22:00:21"} 
[2026-09-29 22:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 22:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 22:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-29 21:00:38","window_to":"2026-09-29 22:00:38"} 
[2026-09-29 22:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 21:15:18","window_to":"2026-09-29 22:15:18"} 
[2026-09-29 22:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 22:00:21","page":1} 
[2026-09-29 22:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 22:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 22:30:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 22:15:18","page":1} 
[2026-09-29 22:30:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 21:30:22","window_to":"2026-09-29 22:30:22"} 
[2026-09-29 22:30:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 22:30:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 22:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 22:30:22","page":1} 
[2026-09-29 22:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 21:45:16","window_to":"2026-09-29 22:45:16"} 
[2026-09-29 22:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 22:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 23:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 22:00:19","window_to":"2026-09-29 23:00:20"} 
[2026-09-29 23:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 22:45:17","page":1} 
[2026-09-29 23:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 23:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 23:00:37] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-29 22:00:37","window_to":"2026-09-29 23:00:37"} 
[2026-09-29 23:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 22:15:16","window_to":"2026-09-29 23:15:16"} 
[2026-09-29 23:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 23:00:20","page":1} 
[2026-09-29 23:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 23:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 23:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 23:15:17","page":1} 
[2026-09-29 23:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 22:30:20","window_to":"2026-09-29 23:30:20"} 
[2026-09-29 23:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 23:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-29 23:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 23:30:20","page":1} 
[2026-09-29 23:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 22:45:17","window_to":"2026-09-29 23:45:17"} 
[2026-09-29 23:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-29 23:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 00:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-29 23:45:17","page":1} 
[2026-09-30 00:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 23:00:21","window_to":"2026-09-30 00:00:21"} 
[2026-09-30 00:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 00:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 00:00:42] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_30_00_00_42.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-30 00:00:43] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-29 23:00:42","window_to":"2026-09-30 00:00:42"} 
[2026-09-30 00:00:43] local.INFO: Student payment status check queued {"batches":1,"students":54} 
[2026-09-30 00:00:48] local.INFO: Student payment status cron evaluated {"student_id":5,"admission_no":"26/000001","outstanding_amount":24000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:48] local.INFO: Student payment status cron evaluated {"student_id":13,"admission_no":"26/000009","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":14,"admission_no":"26/000010","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":16,"admission_no":"26/000012","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":17,"admission_no":"26/000013","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":20,"admission_no":"26/000016","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":31,"admission_no":"26/000027","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:52] local.INFO: Student payment status cron evaluated {"student_id":32,"admission_no":"26/000028","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:52] local.INFO: Student payment status cron evaluated {"student_id":33,"admission_no":"26/000029","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:53] local.INFO: Student payment status cron evaluated {"student_id":34,"admission_no":"26/000030","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:53] local.INFO: Student payment status cron evaluated {"student_id":35,"admission_no":"26/000031","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:54] local.INFO: Student payment status cron evaluated {"student_id":23,"admission_no":"26/000019","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:54] local.INFO: Student payment status cron evaluated {"student_id":26,"admission_no":"26/000022","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:54] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_30_00_00_42.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-30 00:00:54] local.INFO: Student payment status cron evaluated {"student_id":28,"admission_no":"26/000024","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:55] local.INFO: Student payment status cron evaluated {"student_id":36,"admission_no":"26/000032","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:55] local.INFO: Student payment status cron evaluated {"student_id":37,"admission_no":"26/000033","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:55] local.INFO: Student payment status cron evaluated {"student_id":38,"admission_no":"26/000034","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:55] local.INFO: Student payment status cron evaluated {"student_id":39,"admission_no":"26/000035","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:55] local.INFO: Student payment status cron evaluated {"student_id":40,"admission_no":"26/000036","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:55] local.INFO: Student payment status cron evaluated {"student_id":43,"admission_no":"26/000039","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:55] local.INFO: Student payment status cron evaluated {"student_id":44,"admission_no":"26/000040","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:55] local.INFO: Student payment status cron evaluated {"student_id":45,"admission_no":"26/000041","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":46,"admission_no":"26/000042","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":47,"admission_no":"26/000043","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":50,"admission_no":"26/000046","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":51,"admission_no":"26/000047","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":52,"admission_no":"26/000048","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":53,"admission_no":"26/000049","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":54,"admission_no":"26/000050","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":55,"admission_no":"26/000051","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":56,"admission_no":"26/000052","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":57,"admission_no":"26/000053","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":59,"admission_no":"26/000055","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":61,"admission_no":"26/000057","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":63,"admission_no":"26/000059","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:57] local.INFO: Student payment status cron evaluated {"student_id":64,"admission_no":"26/000060","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:57] local.INFO: Student payment status cron evaluated {"student_id":65,"admission_no":"26/000061","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:57] local.INFO: Student payment status cron evaluated {"student_id":66,"admission_no":"26/000062","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:57] local.INFO: Student payment status cron evaluated {"student_id":67,"admission_no":"26/000063","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:57] local.INFO: Student payment status cron evaluated {"student_id":68,"admission_no":"26/000064","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:57] local.INFO: Student payment status cron evaluated {"student_id":69,"admission_no":"26/000065","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:57] local.INFO: Student payment status cron evaluated {"student_id":70,"admission_no":"26/000066","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:57] local.INFO: Student payment status cron evaluated {"student_id":72,"admission_no":"26/000068","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:57] local.INFO: Student payment status cron evaluated {"student_id":73,"admission_no":"26/000069","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:58] local.INFO: Student payment status cron evaluated {"student_id":74,"admission_no":"26/000070","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:58] local.INFO: Student payment status cron evaluated {"student_id":75,"admission_no":"26/000071","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:58] local.INFO: Student payment status cron evaluated {"student_id":76,"admission_no":"26/000072","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:58] local.INFO: Student payment status cron evaluated {"student_id":77,"admission_no":"26/000073","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:58] local.INFO: Student payment status cron evaluated {"student_id":78,"admission_no":"26/000074","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:58] local.INFO: Student payment status cron evaluated {"student_id":79,"admission_no":"26/000075","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:58] local.INFO: Student payment status cron evaluated {"student_id":80,"admission_no":"26/000076","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:58] local.INFO: Student payment status cron evaluated {"student_id":8,"admission_no":"26/000004","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:58] local.INFO: Student payment status cron evaluated {"student_id":9,"admission_no":"26/000005","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:00:58] local.INFO: Student payment status cron evaluated {"student_id":22,"admission_no":"26/000018","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-09-30 00:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 00:00:21","page":1} 
[2026-09-30 00:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 23:15:16","window_to":"2026-09-30 00:15:16"} 
[2026-09-30 00:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 00:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 00:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 23:30:19","window_to":"2026-09-30 00:30:19"} 
[2026-09-30 00:30:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 00:15:16","page":1} 
[2026-09-30 00:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 00:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 00:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-29 23:45:17","window_to":"2026-09-30 00:45:18"} 
[2026-09-30 00:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 00:30:21","page":1} 
[2026-09-30 00:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 00:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 01:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 00:45:18","page":1} 
[2026-09-30 01:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 00:00:21","window_to":"2026-09-30 01:00:21"} 
[2026-09-30 01:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 01:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 01:00:41] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-30 00:00:41","window_to":"2026-09-30 01:00:41"} 
[2026-09-30 01:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 00:15:17","window_to":"2026-09-30 01:15:17"} 
[2026-09-30 01:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 01:00:21","page":1} 
[2026-09-30 01:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 01:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 01:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 00:30:19","window_to":"2026-09-30 01:30:19"} 
[2026-09-30 01:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 01:15:18","page":1} 
[2026-09-30 01:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 01:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 01:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 00:45:16","window_to":"2026-09-30 01:45:17"} 
[2026-09-30 01:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 01:30:20","page":1} 
[2026-09-30 01:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 01:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 02:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 01:00:20","window_to":"2026-09-30 02:00:20"} 
[2026-09-30 02:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 01:45:17","page":1} 
[2026-09-30 02:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 02:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 02:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-30 01:00:38","window_to":"2026-09-30 02:00:38"} 
[2026-09-30 02:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 01:15:16","window_to":"2026-09-30 02:15:16"} 
[2026-09-30 02:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 02:00:21","page":1} 
[2026-09-30 02:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 02:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 02:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 01:30:19","window_to":"2026-09-30 02:30:19"} 
[2026-09-30 02:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 02:15:16","page":1} 
[2026-09-30 02:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 02:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 02:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 02:30:20","page":1} 
[2026-09-30 02:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 01:45:18","window_to":"2026-09-30 02:45:18"} 
[2026-09-30 02:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 02:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 03:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 02:45:17","page":1} 
[2026-09-30 03:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 02:00:20","window_to":"2026-09-30 03:00:20"} 
[2026-09-30 03:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 03:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 03:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-30 02:00:35","window_to":"2026-09-30 03:00:35"} 
[2026-09-30 03:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 02:15:16","window_to":"2026-09-30 03:15:16"} 
[2026-09-30 03:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 03:00:20","page":1} 
[2026-09-30 03:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 03:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 03:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 02:30:17","window_to":"2026-09-30 03:30:17"} 
[2026-09-30 03:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 03:15:17","page":1} 
[2026-09-30 03:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 03:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 03:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 03:30:18","page":1} 
[2026-09-30 03:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 02:45:17","window_to":"2026-09-30 03:45:17"} 
[2026-09-30 03:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 03:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 04:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 03:45:17","page":1} 
[2026-09-30 04:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 03:00:19","window_to":"2026-09-30 04:00:19"} 
[2026-09-30 04:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 04:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 04:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-30 03:00:34","window_to":"2026-09-30 04:00:34"} 
[2026-09-30 04:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 04:00:19","page":1} 
[2026-09-30 04:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 03:15:16","window_to":"2026-09-30 04:15:16"} 
[2026-09-30 04:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 04:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 04:30:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 04:15:15","page":1} 
[2026-09-30 04:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 03:30:18","window_to":"2026-09-30 04:30:18"} 
[2026-09-30 04:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 04:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 04:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 04:30:17","page":1} 
[2026-09-30 04:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 03:45:16","window_to":"2026-09-30 04:45:16"} 
[2026-09-30 04:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 04:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 05:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 04:45:16","page":1} 
[2026-09-30 05:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 04:00:19","window_to":"2026-09-30 05:00:19"} 
[2026-09-30 05:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 05:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 05:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-30 04:00:36","window_to":"2026-09-30 05:00:36"} 
[2026-09-30 05:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 05:00:19","page":1} 
[2026-09-30 05:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 04:15:17","window_to":"2026-09-30 05:15:17"} 
[2026-09-30 05:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 05:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 05:30:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 04:30:23","window_to":"2026-09-30 05:30:23"} 
[2026-09-30 05:30:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 05:15:17","page":1} 
[2026-09-30 05:30:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 05:30:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 05:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 04:45:18","window_to":"2026-09-30 05:45:18"} 
[2026-09-30 05:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 05:30:23","page":1} 
[2026-09-30 05:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 05:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 06:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 05:45:19","page":1} 
[2026-09-30 06:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 05:00:18","window_to":"2026-09-30 06:00:18"} 
[2026-09-30 06:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 06:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 06:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-30 05:00:34","window_to":"2026-09-30 06:00:34"} 
[2026-09-30 06:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 06:00:18","page":1} 
[2026-09-30 06:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 05:15:18","window_to":"2026-09-30 06:15:19"} 
[2026-09-30 06:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 06:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 06:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 05:30:18","window_to":"2026-09-30 06:30:18"} 
[2026-09-30 06:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 06:15:18","page":1} 
[2026-09-30 06:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 06:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 06:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 05:45:16","window_to":"2026-09-30 06:45:16"} 
[2026-09-30 06:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 06:30:19","page":1} 
[2026-09-30 06:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 06:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 07:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 06:00:20","window_to":"2026-09-30 07:00:20"} 
[2026-09-30 07:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 06:45:17","page":1} 
[2026-09-30 07:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 07:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 07:00:37] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-30 06:00:37","window_to":"2026-09-30 07:00:37"} 
[2026-09-30 07:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 07:00:21","page":1} 
[2026-09-30 07:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 07:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 07:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 06:15:18","window_to":"2026-09-30 07:15:18"} 
[2026-09-30 07:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 06:30:19","window_to":"2026-09-30 07:30:19"} 
[2026-09-30 07:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 07:15:17","page":1} 
[2026-09-30 07:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 07:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 07:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 06:45:17","window_to":"2026-09-30 07:45:17"} 
[2026-09-30 07:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 07:30:19","page":1} 
[2026-09-30 07:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 07:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 08:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 07:45:18","page":1} 
[2026-09-30 08:00:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 07:00:22","window_to":"2026-09-30 08:00:22"} 
[2026-09-30 08:00:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 08:00:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 08:00:42] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-30 07:00:42","window_to":"2026-09-30 08:00:42"} 
[2026-09-30 08:00:42] local.INFO: Payment reminders queued {"batches":1,"students":54} 
[2026-09-30 08:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 07:15:19","window_to":"2026-09-30 08:15:19"} 
[2026-09-30 08:15:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 08:00:22","page":1} 
[2026-09-30 08:15:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 08:15:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 08:30:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 08:15:20","page":1} 
[2026-09-30 08:30:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 07:30:22","window_to":"2026-09-30 08:30:22"} 
[2026-09-30 08:30:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 08:30:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 08:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 07:45:20","window_to":"2026-09-30 08:45:20"} 
[2026-09-30 08:45:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 08:30:22","page":1} 
[2026-09-30 08:45:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 08:45:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 09:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 08:00:20","window_to":"2026-09-30 09:00:20"} 
[2026-09-30 09:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 08:45:20","page":1} 
[2026-09-30 09:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 09:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 09:00:37] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-30 08:00:37","window_to":"2026-09-30 09:00:37"} 
[2026-09-30 09:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 09:00:21","page":1} 
[2026-09-30 09:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 08:15:17","window_to":"2026-09-30 09:15:17"} 
[2026-09-30 09:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 09:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 09:30:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 09:15:17","page":1} 
[2026-09-30 09:30:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 08:30:22","window_to":"2026-09-30 09:30:22"} 
[2026-09-30 09:30:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 09:30:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 09:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 08:45:19","window_to":"2026-09-30 09:45:19"} 
[2026-09-30 09:45:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 09:30:21","page":1} 
[2026-09-30 09:45:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 09:45:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 10:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 09:45:21","page":1} 
[2026-09-30 10:00:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 09:00:21","window_to":"2026-09-30 10:00:21"} 
[2026-09-30 10:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 10:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 10:00:40] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-30 09:00:40","window_to":"2026-09-30 10:00:40"} 
[2026-09-30 10:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 10:00:21","page":1} 
[2026-09-30 10:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 09:15:18","window_to":"2026-09-30 10:15:18"} 
[2026-09-30 10:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 10:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 10:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 09:30:20","window_to":"2026-09-30 10:30:20"} 
[2026-09-30 10:30:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 10:15:17","page":1} 
[2026-09-30 10:30:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 10:30:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 10:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 09:45:18","window_to":"2026-09-30 10:45:18"} 
[2026-09-30 10:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 10:30:22","page":1} 
[2026-09-30 10:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 10:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 11:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 10:00:20","window_to":"2026-09-30 11:00:20"} 
[2026-09-30 11:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 10:45:19","page":1} 
[2026-09-30 11:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 11:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 11:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-30 10:00:38","window_to":"2026-09-30 11:00:38"} 
[2026-09-30 11:15:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 10:15:22","window_to":"2026-09-30 11:15:22"} 
[2026-09-30 11:15:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 11:00:21","page":1} 
[2026-09-30 11:15:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 11:15:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 11:30:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 11:15:23","page":1} 
[2026-09-30 11:30:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 10:30:22","window_to":"2026-09-30 11:30:22"} 
[2026-09-30 11:30:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 11:30:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 11:45:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 10:45:20","window_to":"2026-09-30 11:45:20"} 
[2026-09-30 11:45:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 11:30:22","page":1} 
[2026-09-30 11:45:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 11:45:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 12:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 11:45:21","page":1} 
[2026-09-30 12:00:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 11:00:22","window_to":"2026-09-30 12:00:22"} 
[2026-09-30 12:00:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 12:00:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 12:00:43] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_30_12_00_42.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-09-30 12:00:43] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-30 11:00:43","window_to":"2026-09-30 12:00:43"} 
[2026-09-30 12:00:51] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_09_30_12_00_42.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-09-30 12:15:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 12:00:22","page":1} 
[2026-09-30 12:15:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 12:15:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 12:15:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 11:15:21","window_to":"2026-09-30 12:15:21"} 
[2026-09-30 12:30:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 11:30:21","window_to":"2026-09-30 12:30:21"} 
[2026-09-30 12:30:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 12:15:19","page":1} 
[2026-09-30 12:30:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 12:30:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 12:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 12:30:22","page":1} 
[2026-09-30 12:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 11:45:19","window_to":"2026-09-30 12:45:19"} 
[2026-09-30 12:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 12:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 13:00:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 12:45:19","page":1} 
[2026-09-30 13:00:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 12:00:23","window_to":"2026-09-30 13:00:23"} 
[2026-09-30 13:00:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 13:00:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 13:00:41] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-30 12:00:40","window_to":"2026-09-30 13:00:40"} 
[2026-09-30 13:15:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 13:00:23","page":1} 
[2026-09-30 13:15:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 12:15:23","window_to":"2026-09-30 13:15:23"} 
[2026-09-30 13:15:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 13:15:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 13:30:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 13:15:23","page":1} 
[2026-09-30 13:30:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 12:30:21","window_to":"2026-09-30 13:30:21"} 
[2026-09-30 13:30:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 13:30:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 13:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 13:30:21","page":1} 
[2026-09-30 13:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 12:45:19","window_to":"2026-09-30 13:45:19"} 
[2026-09-30 13:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 13:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 14:00:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 13:00:22","window_to":"2026-09-30 14:00:22"} 
[2026-09-30 14:00:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 13:45:19","page":1} 
[2026-09-30 14:00:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 14:00:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 14:00:41] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-30 13:00:40","window_to":"2026-09-30 14:00:40"} 
[2026-09-30 14:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 14:00:23","page":1} 
[2026-09-30 14:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 13:15:18","window_to":"2026-09-30 14:15:18"} 
[2026-09-30 14:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 14:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 14:30:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 13:30:21","window_to":"2026-09-30 14:30:21"} 
[2026-09-30 14:30:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 14:15:18","page":1} 
[2026-09-30 14:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 14:30:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 14:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 13:45:18","window_to":"2026-09-30 14:45:18"} 
[2026-09-30 14:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 14:30:21","page":1} 
[2026-09-30 14:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 14:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 15:00:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 14:00:22","window_to":"2026-09-30 15:00:23"} 
[2026-09-30 15:00:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 14:45:18","page":1} 
[2026-09-30 15:00:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 15:00:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 15:00:42] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-30 14:00:42","window_to":"2026-09-30 15:00:42"} 
[2026-09-30 15:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 15:00:23","page":1} 
[2026-09-30 15:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 14:15:19","window_to":"2026-09-30 15:15:19"} 
[2026-09-30 15:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 15:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 15:30:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 14:30:21","window_to":"2026-09-30 15:30:21"} 
[2026-09-30 15:30:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 15:15:19","page":1} 
[2026-09-30 15:30:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 15:30:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 15:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 14:45:20","window_to":"2026-09-30 15:45:20"} 
[2026-09-30 15:45:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 15:30:22","page":1} 
[2026-09-30 15:45:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 15:45:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 16:00:28] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 15:00:28","window_to":"2026-09-30 16:00:28"} 
[2026-09-30 16:00:29] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 15:45:21","page":1} 
[2026-09-30 16:00:31] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 16:00:32] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 16:00:51] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-30 15:00:50","window_to":"2026-09-30 16:00:50"} 
[2026-09-30 16:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 15:15:18","window_to":"2026-09-30 16:15:18"} 
[2026-09-30 16:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 16:00:29","page":1} 
[2026-09-30 16:15:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 16:15:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 16:30:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 16:15:19","page":1} 
[2026-09-30 16:30:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 15:30:21","window_to":"2026-09-30 16:30:21"} 
[2026-09-30 16:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 16:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 16:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 15:45:19","window_to":"2026-09-30 16:45:19"} 
[2026-09-30 16:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 16:30:21","page":1} 
[2026-09-30 16:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 16:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 17:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 16:45:19","page":1} 
[2026-09-30 17:00:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 16:00:22","window_to":"2026-09-30 17:00:22"} 
[2026-09-30 17:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 17:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 17:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-30 16:00:38","window_to":"2026-09-30 17:00:38"} 
[2026-09-30 17:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 17:00:21","page":1} 
[2026-09-30 17:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 16:15:18","window_to":"2026-09-30 17:15:18"} 
[2026-09-30 17:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 17:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 17:30:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 16:30:21","window_to":"2026-09-30 17:30:21"} 
[2026-09-30 17:30:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 17:15:18","page":1} 
[2026-09-30 17:30:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 17:30:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 17:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 16:45:17","window_to":"2026-09-30 17:45:17"} 
[2026-09-30 17:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 17:30:22","page":1} 
[2026-09-30 17:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 17:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 18:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 17:00:21","window_to":"2026-09-30 18:00:21"} 
[2026-09-30 18:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 17:45:17","page":1} 
[2026-09-30 18:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 18:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 18:00:37] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-30 17:00:37","window_to":"2026-09-30 18:00:37"} 
[2026-09-30 18:15:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 17:15:20","window_to":"2026-09-30 18:15:20"} 
[2026-09-30 18:15:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 18:00:21","page":1} 
[2026-09-30 18:15:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 18:15:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 18:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 18:15:21","page":1} 
[2026-09-30 18:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 17:30:18","window_to":"2026-09-30 18:30:18"} 
[2026-09-30 18:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 18:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 18:37:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:37:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:37:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:37:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:37:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:38:00] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1"}  
[2026-09-30 18:38:02] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null}  
[2026-09-30 18:38:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:38:17] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1"}  
[2026-09-30 18:38:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:38:17] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null}  
[2026-09-30 18:38:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:39:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:40:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:40:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:41:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:41:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:42:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:42:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:43:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:43:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:43:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:44:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:44:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 18:30:18","page":1} 
[2026-09-30 18:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 18:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 18:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 17:45:18","window_to":"2026-09-30 18:45:18"} 
[2026-09-30 18:45:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:46:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:46:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:46:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:47:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:47:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:48:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:48:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:49:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:49:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:50:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:51:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:51:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:52:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:52:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:53:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:53:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:54:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:54:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:55:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:56:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:56:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:57:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:57:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:58:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 18:58:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-09-30 19:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 18:45:16","page":1} 
[2026-09-30 19:00:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 18:00:22","window_to":"2026-09-30 19:00:22"} 
[2026-09-30 19:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 19:00:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 19:00:40] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-30 18:00:40","window_to":"2026-09-30 19:00:40"} 
[2026-09-30 19:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 19:00:22","page":1} 
[2026-09-30 19:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 18:15:18","window_to":"2026-09-30 19:15:18"} 
[2026-09-30 19:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 19:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 19:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 18:30:19","window_to":"2026-09-30 19:30:19"} 
[2026-09-30 19:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 19:15:18","page":1} 
[2026-09-30 19:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 19:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 19:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 19:30:19","page":1} 
[2026-09-30 19:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 18:45:17","window_to":"2026-09-30 19:45:17"} 
[2026-09-30 19:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 19:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 20:00:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 19:00:21","window_to":"2026-09-30 20:00:22"} 
[2026-09-30 20:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 19:45:16","page":1} 
[2026-09-30 20:00:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 20:00:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 20:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-30 19:00:38","window_to":"2026-09-30 20:00:38"} 
[2026-09-30 20:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 19:15:17","window_to":"2026-09-30 20:15:17"} 
[2026-09-30 20:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 20:00:22","page":1} 
[2026-09-30 20:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 20:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 20:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 20:15:18","page":1} 
[2026-09-30 20:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 19:30:19","window_to":"2026-09-30 20:30:19"} 
[2026-09-30 20:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 20:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 20:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 19:45:18","window_to":"2026-09-30 20:45:18"} 
[2026-09-30 20:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 20:30:19","page":1} 
[2026-09-30 20:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 20:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 21:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 20:45:19","page":1} 
[2026-09-30 21:00:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 20:00:21","window_to":"2026-09-30 21:00:21"} 
[2026-09-30 21:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 21:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 21:00:37] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-30 20:00:37","window_to":"2026-09-30 21:00:37"} 
[2026-09-30 21:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 20:15:18","window_to":"2026-09-30 21:15:18"} 
[2026-09-30 21:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 21:00:21","page":1} 
[2026-09-30 21:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 21:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 21:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 21:15:18","page":1} 
[2026-09-30 21:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 20:30:20","window_to":"2026-09-30 21:30:20"} 
[2026-09-30 21:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 21:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 21:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 20:45:16","window_to":"2026-09-30 21:45:17"} 
[2026-09-30 21:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 21:30:20","page":1} 
[2026-09-30 21:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 21:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 22:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 21:45:18","page":1} 
[2026-09-30 22:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 21:00:20","window_to":"2026-09-30 22:00:20"} 
[2026-09-30 22:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 22:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 22:00:36] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-30 21:00:35","window_to":"2026-09-30 22:00:36"} 
[2026-09-30 22:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 22:00:20","page":1} 
[2026-09-30 22:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 21:15:17","window_to":"2026-09-30 22:15:17"} 
[2026-09-30 22:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 22:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 22:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 21:30:20","window_to":"2026-09-30 22:30:20"} 
[2026-09-30 22:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 22:15:17","page":1} 
[2026-09-30 22:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 22:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 22:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 22:30:20","page":1} 
[2026-09-30 22:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 21:45:19","window_to":"2026-09-30 22:45:19"} 
[2026-09-30 22:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 22:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 23:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 22:00:19","window_to":"2026-09-30 23:00:19"} 
[2026-09-30 23:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 22:45:19","page":1} 
[2026-09-30 23:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 23:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 23:00:37] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-30 22:00:36","window_to":"2026-09-30 23:00:36"} 
[2026-09-30 23:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 23:00:19","page":1} 
[2026-09-30 23:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 22:15:16","window_to":"2026-09-30 23:15:17"} 
[2026-09-30 23:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 23:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 23:30:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 22:30:20","window_to":"2026-09-30 23:30:20"} 
[2026-09-30 23:30:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 23:15:17","page":1} 
[2026-09-30 23:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 23:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-09-30 23:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 22:45:18","window_to":"2026-09-30 23:45:18"} 
[2026-09-30 23:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 23:30:21","page":1} 
[2026-09-30 23:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-09-30 23:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 00:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-09-30 23:45:19","page":1} 
[2026-10-01 00:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 23:00:19","window_to":"2026-10-01 00:00:19"} 
[2026-10-01 00:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 00:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 00:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-09-30 23:00:37","window_to":"2026-10-01 00:00:37"} 
[2026-10-01 00:00:38] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_10_01_00_00_38.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-10-01 00:00:38] local.INFO: Student payment status check queued {"batches":1,"students":54} 
[2026-10-01 00:00:41] local.INFO: Student payment status cron evaluated {"student_id":5,"admission_no":"26/000001","outstanding_amount":24000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:42] local.INFO: Student payment status cron evaluated {"student_id":13,"admission_no":"26/000009","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:42] local.INFO: Student payment status cron evaluated {"student_id":14,"admission_no":"26/000010","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:43] local.INFO: Student payment status cron evaluated {"student_id":16,"admission_no":"26/000012","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:43] local.INFO: Student payment status cron evaluated {"student_id":17,"admission_no":"26/000013","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:44] local.INFO: Student payment status cron evaluated {"student_id":20,"admission_no":"26/000016","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:44] local.INFO: Student payment status cron evaluated {"student_id":31,"admission_no":"26/000027","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:45] local.INFO: Student payment status cron evaluated {"student_id":32,"admission_no":"26/000028","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:45] local.INFO: Student payment status cron evaluated {"student_id":33,"admission_no":"26/000029","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:46] local.INFO: Student payment status cron evaluated {"student_id":34,"admission_no":"26/000030","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:46] local.INFO: Student payment status cron evaluated {"student_id":35,"admission_no":"26/000031","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:47] local.INFO: Student payment status cron evaluated {"student_id":23,"admission_no":"26/000019","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:47] local.INFO: Student payment status cron evaluated {"student_id":26,"admission_no":"26/000022","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:47] local.INFO: Student payment status cron evaluated {"student_id":28,"admission_no":"26/000024","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:48] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_10_01_00_00_38.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-10-01 00:00:48] local.INFO: Student payment status cron evaluated {"student_id":36,"admission_no":"26/000032","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:48] local.INFO: Student payment status cron evaluated {"student_id":37,"admission_no":"26/000033","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:48] local.INFO: Student payment status cron evaluated {"student_id":38,"admission_no":"26/000034","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:48] local.INFO: Student payment status cron evaluated {"student_id":39,"admission_no":"26/000035","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":40,"admission_no":"26/000036","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":43,"admission_no":"26/000039","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":44,"admission_no":"26/000040","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":45,"admission_no":"26/000041","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":46,"admission_no":"26/000042","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":47,"admission_no":"26/000043","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":50,"admission_no":"26/000046","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":51,"admission_no":"26/000047","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":52,"admission_no":"26/000048","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":53,"admission_no":"26/000049","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":54,"admission_no":"26/000050","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":55,"admission_no":"26/000051","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:49] local.INFO: Student payment status cron evaluated {"student_id":56,"admission_no":"26/000052","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":57,"admission_no":"26/000053","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":59,"admission_no":"26/000055","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":61,"admission_no":"26/000057","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":63,"admission_no":"26/000059","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":64,"admission_no":"26/000060","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":65,"admission_no":"26/000061","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":66,"admission_no":"26/000062","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":67,"admission_no":"26/000063","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":68,"admission_no":"26/000064","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":69,"admission_no":"26/000065","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":70,"admission_no":"26/000066","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":72,"admission_no":"26/000068","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":73,"admission_no":"26/000069","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":74,"admission_no":"26/000070","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":75,"admission_no":"26/000071","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:50] local.INFO: Student payment status cron evaluated {"student_id":76,"admission_no":"26/000072","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":77,"admission_no":"26/000073","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":78,"admission_no":"26/000074","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":80,"admission_no":"26/000076","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":8,"admission_no":"26/000004","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":9,"admission_no":"26/000005","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":22,"admission_no":"26/000018","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:00:51] local.INFO: Student payment status cron evaluated {"student_id":79,"admission_no":"26/000075","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-01 00:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 23:15:18","window_to":"2026-10-01 00:15:18"} 
[2026-10-01 00:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 00:00:18","page":1} 
[2026-10-01 00:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 00:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 00:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 23:30:20","window_to":"2026-10-01 00:30:20"} 
[2026-10-01 00:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 00:15:19","page":1} 
[2026-10-01 00:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 00:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 00:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-09-30 23:45:17","window_to":"2026-10-01 00:45:17"} 
[2026-10-01 00:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 00:30:20","page":1} 
[2026-10-01 00:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 00:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 01:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 00:00:20","window_to":"2026-10-01 01:00:20"} 
[2026-10-01 01:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 00:45:18","page":1} 
[2026-10-01 01:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 01:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 01:00:39] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-01 00:00:39","window_to":"2026-10-01 01:00:39"} 
[2026-10-01 01:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 01:00:21","page":1} 
[2026-10-01 01:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 00:15:18","window_to":"2026-10-01 01:15:18"} 
[2026-10-01 01:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 01:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 01:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 01:15:18","page":1} 
[2026-10-01 01:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 00:30:19","window_to":"2026-10-01 01:30:19"} 
[2026-10-01 01:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 01:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 01:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 01:30:19","page":1} 
[2026-10-01 01:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 00:45:16","window_to":"2026-10-01 01:45:16"} 
[2026-10-01 01:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 01:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 02:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 01:45:16","page":1} 
[2026-10-01 02:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 01:00:20","window_to":"2026-10-01 02:00:20"} 
[2026-10-01 02:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 02:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 02:00:37] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-01 01:00:37","window_to":"2026-10-01 02:00:37"} 
[2026-10-01 02:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 02:00:20","page":1} 
[2026-10-01 02:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 01:15:17","window_to":"2026-10-01 02:15:17"} 
[2026-10-01 02:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 02:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 02:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 02:15:17","page":1} 
[2026-10-01 02:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 02:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 02:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 01:30:19","window_to":"2026-10-01 02:30:20"} 
[2026-10-01 02:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 01:45:17","window_to":"2026-10-01 02:45:17"} 
[2026-10-01 02:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 02:30:18","page":1} 
[2026-10-01 02:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 02:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 03:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 02:45:17","page":1} 
[2026-10-01 03:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 02:00:19","window_to":"2026-10-01 03:00:19"} 
[2026-10-01 03:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 03:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 03:00:35] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-01 02:00:34","window_to":"2026-10-01 03:00:34"} 
[2026-10-01 03:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 02:15:17","window_to":"2026-10-01 03:15:17"} 
[2026-10-01 03:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 03:00:19","page":1} 
[2026-10-01 03:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 03:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 03:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 03:15:17","page":1} 
[2026-10-01 03:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 03:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 02:30:19","window_to":"2026-10-01 03:30:20"} 
[2026-10-01 03:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 03:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 02:45:14","window_to":"2026-10-01 03:45:14"} 
[2026-10-01 03:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 03:30:19","page":1} 
[2026-10-01 03:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 03:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 04:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 03:45:15","page":1} 
[2026-10-01 04:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 03:00:18","window_to":"2026-10-01 04:00:18"} 
[2026-10-01 04:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 04:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 04:00:33] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-01 03:00:33","window_to":"2026-10-01 04:00:33"} 
[2026-10-01 04:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 03:15:16","window_to":"2026-10-01 04:15:16"} 
[2026-10-01 04:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 04:00:18","page":1} 
[2026-10-01 04:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 04:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 04:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 03:30:18","window_to":"2026-10-01 04:30:19"} 
[2026-10-01 04:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 04:15:17","page":1} 
[2026-10-01 04:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 04:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 04:45:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 04:30:19","page":1} 
[2026-10-01 04:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 03:45:15","window_to":"2026-10-01 04:45:16"} 
[2026-10-01 04:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 04:45:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 05:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 04:00:20","window_to":"2026-10-01 05:00:20"} 
[2026-10-01 05:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 04:45:16","page":1} 
[2026-10-01 05:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 05:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 05:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-01 04:00:34","window_to":"2026-10-01 05:00:34"} 
[2026-10-01 05:15:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 05:00:20","page":1} 
[2026-10-01 05:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 04:15:15","window_to":"2026-10-01 05:15:15"} 
[2026-10-01 05:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 05:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 05:30:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 04:30:23","window_to":"2026-10-01 05:30:23"} 
[2026-10-01 05:30:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 05:15:15","page":1} 
[2026-10-01 05:30:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 05:30:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 05:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 05:30:25","page":1} 
[2026-10-01 05:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 04:45:16","window_to":"2026-10-01 05:45:17"} 
[2026-10-01 05:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 05:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 06:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 05:45:17","page":1} 
[2026-10-01 06:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 05:00:20","window_to":"2026-10-01 06:00:21"} 
[2026-10-01 06:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 06:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 06:00:37] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-01 05:00:36","window_to":"2026-10-01 06:00:36"} 
[2026-10-01 06:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 06:00:21","page":1} 
[2026-10-01 06:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 05:15:16","window_to":"2026-10-01 06:15:16"} 
[2026-10-01 06:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 06:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 06:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 06:15:16","page":1} 
[2026-10-01 06:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 05:30:20","window_to":"2026-10-01 06:30:20"} 
[2026-10-01 06:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 06:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 06:45:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 05:45:16","window_to":"2026-10-01 06:45:16"} 
[2026-10-01 06:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 06:30:20","page":1} 
[2026-10-01 06:45:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 06:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 06:48:19] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cache" where "key" in (ims_academy_cache_illuminate:queue:restart)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_illuminate:queue:restart)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(999): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(978): Illuminate\\Database\\Connection->tryAgainIfCausedByLostConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(796): Illuminate\\Database\\Connection->handleQueryException()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(766): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(332): Illuminate\\Queue\\Worker->queueShouldRestart()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(217): Illuminate\\Queue\\Worker->stopIfNecessary()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#26 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#27 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#30 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#31 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(999): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(978): Illuminate\\Database\\Connection->tryAgainIfCausedByLostConnection()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(796): Illuminate\\Database\\Connection->handleQueryException()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(766): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(332): Illuminate\\Queue\\Worker->queueShouldRestart()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(217): Illuminate\\Queue\\Worker->stopIfNecessary()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#35 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#36 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#37 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#40 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#41 {main}
"} 
[2026-10-01 07:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 06:00:19","window_to":"2026-10-01 07:00:19"} 
[2026-10-01 07:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 06:45:17","page":1} 
[2026-10-01 07:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 07:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 07:00:33] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-01 06:00:33","window_to":"2026-10-01 07:00:33"} 
[2026-10-01 07:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 07:00:19","page":1} 
[2026-10-01 07:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 06:15:17","window_to":"2026-10-01 07:15:18"} 
[2026-10-01 07:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 07:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 07:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 06:30:20","window_to":"2026-10-01 07:30:20"} 
[2026-10-01 07:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 07:15:17","page":1} 
[2026-10-01 07:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 07:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 07:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 06:45:17","window_to":"2026-10-01 07:45:17"} 
[2026-10-01 07:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 07:30:20","page":1} 
[2026-10-01 07:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 07:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 08:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 07:45:17","page":1} 
[2026-10-01 08:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 07:00:21","window_to":"2026-10-01 08:00:21"} 
[2026-10-01 08:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 08:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 08:00:39] local.INFO: Payment reminders queued {"batches":1,"students":54} 
[2026-10-01 08:00:39] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-01 07:00:39","window_to":"2026-10-01 08:00:39"} 
[2026-10-01 08:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 07:15:19","window_to":"2026-10-01 08:15:19"} 
[2026-10-01 08:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 08:00:20","page":1} 
[2026-10-01 08:15:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 08:15:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 08:30:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 08:15:19","page":1} 
[2026-10-01 08:30:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 07:30:20","window_to":"2026-10-01 08:30:21"} 
[2026-10-01 08:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 08:30:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 08:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 07:45:17","window_to":"2026-10-01 08:45:17"} 
[2026-10-01 08:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 08:30:21","page":1} 
[2026-10-01 08:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 08:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 09:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 08:45:18","page":1} 
[2026-10-01 09:00:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 08:00:22","window_to":"2026-10-01 09:00:22"} 
[2026-10-01 09:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 09:00:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 09:00:41] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-01 08:00:41","window_to":"2026-10-01 09:00:41"} 
[2026-10-01 09:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 08:15:19","window_to":"2026-10-01 09:15:19"} 
[2026-10-01 09:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 09:00:21","page":1} 
[2026-10-01 09:15:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 09:15:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 09:30:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 09:15:19","page":1} 
[2026-10-01 09:30:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 08:30:21","window_to":"2026-10-01 09:30:22"} 
[2026-10-01 09:30:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 09:30:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 09:45:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 09:30:22","page":1} 
[2026-10-01 09:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 08:45:20","window_to":"2026-10-01 09:45:20"} 
[2026-10-01 09:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 09:45:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 10:00:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 09:45:20","page":1} 
[2026-10-01 10:00:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 09:00:24","window_to":"2026-10-01 10:00:24"} 
[2026-10-01 10:00:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 10:00:27] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 10:00:43] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-01 09:00:43","window_to":"2026-10-01 10:00:43"} 
[2026-10-01 10:11:59] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:12:05] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:12:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:12:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:13:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:13:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:14:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:14:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:14:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:14:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:15:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:15:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 10:00:24","page":1} 
[2026-10-01 10:15:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 09:15:23","window_to":"2026-10-01 10:15:23"} 
[2026-10-01 10:15:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 10:15:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 10:15:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:15:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:15:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:16:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:16:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:16:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:16:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:16:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:16:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:16:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:16:50] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:17:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:17:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:17:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:17:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:17:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:17:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:18:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:18:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:18:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:18:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:18:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:19:07] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:19:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:19:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:19:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:19:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:19:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:19:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:19:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:19:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:20:01] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:20:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:20:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:20:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:20:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:20:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:20:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:20:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:20:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:20:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:20:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:21:05] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:21:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:21:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:21:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:21:24] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null}  
[2026-10-01 10:21:25] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1"}  
[2026-10-01 10:21:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:21:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:21:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:21:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:21:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:21:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:21:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:22:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:22:05] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:22:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:22:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:22:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:22:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:22:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:22:36] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:22:38] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:22:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:22:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:22:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:22:59] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:23:05] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:23:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:23:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:23:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:23:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:23:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:23:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:23:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:23:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:23:38] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:23:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:24:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:24:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:24:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:24:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:24:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:24:38] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:24:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:24:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:25:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:25:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:25:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:25:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:25:38] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:25:50] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:25:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:26:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:26:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:26:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:26:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:26:38] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:26:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:26:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:26:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:27:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:27:01] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:27:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:27:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:27:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:27:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:27:38] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:27:38] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:27:43] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:28:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:28:15] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/faculties","user_id":3,"user_reg_no":"STF001001","permissions":["academic.faculties.view"],"permission_ids":[307]} 
[2026-10-01 10:28:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:28:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:28:36] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:28:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:28:38] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:28:38] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:28:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:28:43] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:29:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:29:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:29:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:29:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:29:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:29:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:29:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:29:38] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:29:57] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/programs","user_id":3,"user_reg_no":"STF001001","permissions":["academic.programs.view"],"permission_ids":[299]} 
[2026-10-01 10:29:58] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/programs","user_id":3,"user_reg_no":"STF001001","permissions":["academic.programs.view"],"permission_ids":[299]} 
[2026-10-01 10:30:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:30:26] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/programs","user_id":3,"user_reg_no":"STF001001","permissions":["academic.programs.view"],"permission_ids":[299]} 
[2026-10-01 10:30:26] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 10:15:22","page":1} 
[2026-10-01 10:30:26] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 09:30:26","window_to":"2026-10-01 10:30:26"} 
[2026-10-01 10:30:28] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 10:30:28] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 10:30:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:30:31] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/programs","user_id":3,"user_reg_no":"STF001001","permissions":["academic.programs.view"],"permission_ids":[299]} 
[2026-10-01 10:30:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:30:43] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:30:44] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/programs","user_id":3,"user_reg_no":"STF001001","permissions":["academic.programs.view"],"permission_ids":[299]} 
[2026-10-01 10:30:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:30:47] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:30:48] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/programs","user_id":3,"user_reg_no":"STF001001","permissions":["academic.programs.view"],"permission_ids":[299]} 
[2026-10-01 10:30:52] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/programs","user_id":3,"user_reg_no":"STF001001","permissions":["academic.programs.view"],"permission_ids":[299]} 
[2026-10-01 10:30:53] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/programs","user_id":3,"user_reg_no":"STF001001","permissions":["academic.programs.view"],"permission_ids":[299]} 
[2026-10-01 10:30:54] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/donors","user_id":3,"user_reg_no":"STF001001","permissions":["finance.donors.view"],"permission_ids":[1192]} 
[2026-10-01 10:30:55] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/donors","user_id":3,"user_reg_no":"STF001001","permissions":["finance.donors.view"],"permission_ids":[1192]} 
[2026-10-01 10:30:56] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/programs","user_id":3,"user_reg_no":"STF001001","permissions":["academic.programs.view"],"permission_ids":[299]} 
[2026-10-01 10:30:57] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/programs","user_id":3,"user_reg_no":"STF001001","permissions":["academic.programs.view"],"permission_ids":[299]} 
[2026-10-01 10:30:59] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/programs","user_id":3,"user_reg_no":"STF001001","permissions":["academic.programs.view"],"permission_ids":[299]} 
[2026-10-01 10:30:59] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/batches","user_id":3,"user_reg_no":"STF001001","permissions":["academic.batches.view"],"permission_ids":[288]} 
[2026-10-01 10:31:01] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/batches","user_id":3,"user_reg_no":"STF001001","permissions":["academic.batches.view"],"permission_ids":[288]} 
[2026-10-01 10:31:01] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/programs","user_id":3,"user_reg_no":"STF001001","permissions":["academic.programs.view"],"permission_ids":[299]} 
[2026-10-01 10:31:04] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/programs","user_id":3,"user_reg_no":"STF001001","permissions":["academic.programs.view"],"permission_ids":[299]} 
[2026-10-01 10:31:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:31:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:31:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:31:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:31:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:31:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:31:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:31:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:31:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:31:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:31:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:31:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:31:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:31:47] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:31:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:31:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:31:59] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:32:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:32:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:32:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:32:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:32:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:32:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:32:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:33:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:33:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:33:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:33:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:33:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:33:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:34:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:34:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:34:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:34:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:34:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:34:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:35:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:35:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:35:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:35:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:35:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:35:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:35:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:35:43] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:36:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:36:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:36:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:36:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:36:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:36:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:37:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:37:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:37:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:37:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:37:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:37:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:38:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:38:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:38:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:38:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:38:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:38:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:38:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:38:55] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:38:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:38:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:38:59] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:39:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:39:18] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/faculties","user_id":3,"user_reg_no":"STF001001","permissions":["academic.faculties.view"],"permission_ids":[307]} 
[2026-10-01 10:39:22] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/faculties","user_id":3,"user_reg_no":"STF001001","permissions":["academic.faculties.view"],"permission_ids":[307]} 
[2026-10-01 10:39:25] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/branches","user_id":3,"user_reg_no":"STF001001","permissions":["academic.branches.view"],"permission_ids":[294]} 
[2026-10-01 10:39:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:39:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:39:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:39:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:39:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:39:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:39:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:39:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:39:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:40:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:40:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:40:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:40:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:40:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:40:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:40:33] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/lead-sources","user_id":3,"user_reg_no":"STF001001","permissions":["crm.lead_sources.view"],"permission_ids":[267]} 
[2026-10-01 10:40:34] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/crm/workflows","user_id":3,"user_reg_no":"STF001001","permissions":["crm.workflows.view"],"permission_ids":[176]} 
[2026-10-01 10:40:35] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/lead-sources","user_id":3,"user_reg_no":"STF001001","permissions":["crm.lead_sources.view"],"permission_ids":[267]} 
[2026-10-01 10:40:56] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/lead-sources","user_id":3,"user_reg_no":"STF001001","permissions":["crm.lead_sources.view"],"permission_ids":[267]} 
[2026-10-01 10:40:56] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/lead-sources","user_id":3,"user_reg_no":"STF001001","permissions":["crm.lead_sources.view"],"permission_ids":[267]} 
[2026-10-01 10:40:57] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/campaigns","user_id":3,"user_reg_no":"STF001001","permissions":["crm.campaigns.view"],"permission_ids":[148]} 
[2026-10-01 10:40:57] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/branches","user_id":3,"user_reg_no":"STF001001","permissions":["academic.branches.view"],"permission_ids":[294]} 
[2026-10-01 10:40:57] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/campaigns","user_id":3,"user_reg_no":"STF001001","permissions":["crm.campaigns.view"],"permission_ids":[148]} 
[2026-10-01 10:41:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:41:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:41:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:41:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:41:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:41:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:41:53] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/lead-sources","user_id":3,"user_reg_no":"STF001001","permissions":["crm.lead_sources.view"],"permission_ids":[267]} 
[2026-10-01 10:41:53] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/campaigns","user_id":3,"user_reg_no":"STF001001","permissions":["crm.campaigns.view"],"permission_ids":[148]} 
[2026-10-01 10:41:55] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/branches","user_id":3,"user_reg_no":"STF001001","permissions":["academic.branches.view"],"permission_ids":[294]} 
[2026-10-01 10:41:55] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/lead-sources","user_id":3,"user_reg_no":"STF001001","permissions":["crm.lead_sources.view"],"permission_ids":[267]} 
[2026-10-01 10:41:55] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/campaigns","user_id":3,"user_reg_no":"STF001001","permissions":["crm.campaigns.view"],"permission_ids":[148]} 
[2026-10-01 10:42:10] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/campaigns","user_id":3,"user_reg_no":"STF001001","permissions":["crm.campaigns.view"],"permission_ids":[148]} 
[2026-10-01 10:42:11] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/lead-sources","user_id":3,"user_reg_no":"STF001001","permissions":["crm.lead_sources.view"],"permission_ids":[267]} 
[2026-10-01 10:42:17] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/branches","user_id":3,"user_reg_no":"STF001001","permissions":["academic.branches.view"],"permission_ids":[294]} 
[2026-10-01 10:42:18] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/lead-sources","user_id":3,"user_reg_no":"STF001001","permissions":["crm.lead_sources.view"],"permission_ids":[267]} 
[2026-10-01 10:42:18] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/campaigns","user_id":3,"user_reg_no":"STF001001","permissions":["crm.campaigns.view"],"permission_ids":[148]} 
[2026-10-01 10:42:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:42:21] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/campaigns","user_id":3,"user_reg_no":"STF001001","permissions":["crm.campaigns.view"],"permission_ids":[148]} 
[2026-10-01 10:42:22] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/branches","user_id":3,"user_reg_no":"STF001001","permissions":["academic.branches.view"],"permission_ids":[294]} 
[2026-10-01 10:42:22] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/lead-sources","user_id":3,"user_reg_no":"STF001001","permissions":["crm.lead_sources.view"],"permission_ids":[267]} 
[2026-10-01 10:42:22] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/lead-sources","user_id":3,"user_reg_no":"STF001001","permissions":["crm.lead_sources.view"],"permission_ids":[267]} 
[2026-10-01 10:42:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:42:23] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/campaigns","user_id":3,"user_reg_no":"STF001001","permissions":["crm.campaigns.view"],"permission_ids":[148]} 
[2026-10-01 10:42:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:42:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:42:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:42:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:43:13] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/campaigns","user_id":3,"user_reg_no":"STF001001","permissions":["crm.campaigns.view"],"permission_ids":[148]} 
[2026-10-01 10:43:15] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/branches","user_id":3,"user_reg_no":"STF001001","permissions":["academic.branches.view"],"permission_ids":[294]} 
[2026-10-01 10:43:16] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/lead-sources","user_id":3,"user_reg_no":"STF001001","permissions":["crm.lead_sources.view"],"permission_ids":[267]} 
[2026-10-01 10:43:17] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/campaigns","user_id":3,"user_reg_no":"STF001001","permissions":["crm.campaigns.view"],"permission_ids":[148]} 
[2026-10-01 10:43:17] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/lead-sources","user_id":3,"user_reg_no":"STF001001","permissions":["crm.lead_sources.view"],"permission_ids":[267]} 
[2026-10-01 10:43:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:43:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:43:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:43:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:43:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:43:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:43:55] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/crm/workflows/modules/documents","user_id":3,"user_reg_no":"STF001001","permissions":["crm.workflows.modules.documents.view"],"permission_ids":[113]} 
[2026-10-01 10:43:55] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/crm/workflow-instances","user_id":3,"user_reg_no":"STF001001","permissions":["crm.workflows.instances.view"],"permission_ids":[184]} 
[2026-10-01 10:44:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:44:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:44:18] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/lead-sources","user_id":3,"user_reg_no":"STF001001","permissions":["crm.lead_sources.view"],"permission_ids":[267]} 
[2026-10-01 10:44:19] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/crm/workflows","user_id":3,"user_reg_no":"STF001001","permissions":["crm.workflows.view"],"permission_ids":[176]} 
[2026-10-01 10:44:20] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/lead-sources","user_id":3,"user_reg_no":"STF001001","permissions":["crm.lead_sources.view"],"permission_ids":[267]} 
[2026-10-01 10:44:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:44:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:44:29] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/branches","user_id":3,"user_reg_no":"STF001001","permissions":["academic.branches.view"],"permission_ids":[294]} 
[2026-10-01 10:44:29] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/campaigns","user_id":3,"user_reg_no":"STF001001","permissions":["crm.campaigns.view"],"permission_ids":[148]} 
[2026-10-01 10:44:29] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/lead-sources","user_id":3,"user_reg_no":"STF001001","permissions":["crm.lead_sources.view"],"permission_ids":[267]} 
[2026-10-01 10:44:30] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/lead-sources","user_id":3,"user_reg_no":"STF001001","permissions":["crm.lead_sources.view"],"permission_ids":[267]} 
[2026-10-01 10:44:30] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/campaigns","user_id":3,"user_reg_no":"STF001001","permissions":["crm.campaigns.view"],"permission_ids":[148]} 
[2026-10-01 10:44:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:44:38] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:44:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 09:45:19","window_to":"2026-10-01 10:45:19"} 
[2026-10-01 10:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 10:30:26","page":1} 
[2026-10-01 10:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 10:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 10:45:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:45:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:45:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:45:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:45:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:45:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:45:35] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/lead-sources","user_id":3,"user_reg_no":"STF001001","permissions":["crm.lead_sources.view"],"permission_ids":[267]} 
[2026-10-01 10:45:36] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/lead-sources","user_id":3,"user_reg_no":"STF001001","permissions":["crm.lead_sources.view"],"permission_ids":[267]} 
[2026-10-01 10:45:36] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/crm/workflows","user_id":3,"user_reg_no":"STF001001","permissions":["crm.workflows.view"],"permission_ids":[176]} 
[2026-10-01 10:45:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:46:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:46:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:46:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:46:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:46:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:46:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:46:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:46:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:46:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:46:43] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:46:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:47:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:47:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:47:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:47:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:47:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:47:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:47:55] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:47:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:47:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:47:59] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:48:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:48:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:48:17] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/lead-sources","user_id":3,"user_reg_no":"STF001001","permissions":["crm.lead_sources.view"],"permission_ids":[267]} 
[2026-10-01 10:48:18] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/crm/workflows","user_id":3,"user_reg_no":"STF001001","permissions":["crm.workflows.view"],"permission_ids":[176]} 
[2026-10-01 10:48:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:48:18] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/lead-sources","user_id":3,"user_reg_no":"STF001001","permissions":["crm.lead_sources.view"],"permission_ids":[267]} 
[2026-10-01 10:48:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:48:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:48:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:48:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:49:17] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/lead-sources","user_id":3,"user_reg_no":"STF001001","permissions":["crm.lead_sources.view"],"permission_ids":[267]} 
[2026-10-01 10:49:17] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/campaigns","user_id":3,"user_reg_no":"STF001001","permissions":["crm.campaigns.view"],"permission_ids":[148]} 
[2026-10-01 10:49:18] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/branches","user_id":3,"user_reg_no":"STF001001","permissions":["academic.branches.view"],"permission_ids":[294]} 
[2026-10-01 10:49:18] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/campaigns","user_id":3,"user_reg_no":"STF001001","permissions":["crm.campaigns.view"],"permission_ids":[148]} 
[2026-10-01 10:49:18] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/lead-sources","user_id":3,"user_reg_no":"STF001001","permissions":["crm.lead_sources.view"],"permission_ids":[267]} 
[2026-10-01 10:49:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:49:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:49:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:49:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:49:25] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/lead-sources","user_id":3,"user_reg_no":"STF001001","permissions":["crm.lead_sources.view"],"permission_ids":[267]} 
[2026-10-01 10:49:26] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/branches","user_id":3,"user_reg_no":"STF001001","permissions":["academic.branches.view"],"permission_ids":[294]} 
[2026-10-01 10:49:26] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/campaigns","user_id":3,"user_reg_no":"STF001001","permissions":["crm.campaigns.view"],"permission_ids":[148]} 
[2026-10-01 10:49:27] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/lead-sources","user_id":3,"user_reg_no":"STF001001","permissions":["crm.lead_sources.view"],"permission_ids":[267]} 
[2026-10-01 10:49:27] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/campaigns","user_id":3,"user_reg_no":"STF001001","permissions":["crm.campaigns.view"],"permission_ids":[148]} 
[2026-10-01 10:49:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:49:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:50:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:50:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:50:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:50:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:51:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:51:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:51:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:51:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:51:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:51:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:52:17] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/branches","user_id":3,"user_reg_no":"STF001001","permissions":["academic.branches.view"],"permission_ids":[294]} 
[2026-10-01 10:52:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:52:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:52:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:52:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:52:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:52:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:53:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:53:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:53:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:53:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:53:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:53:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:53:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:53:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:54:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:54:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:54:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:54:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:54:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:54:34] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/campaigns","user_id":3,"user_reg_no":"STF001001","permissions":["crm.campaigns.view"],"permission_ids":[148]} 
[2026-10-01 10:54:34] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/campaigns","user_id":3,"user_reg_no":"STF001001","permissions":["crm.campaigns.view"],"permission_ids":[148]} 
[2026-10-01 10:54:35] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/campaigns","user_id":3,"user_reg_no":"STF001001","permissions":["crm.campaigns.view"],"permission_ids":[148]} 
[2026-10-01 10:54:36] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/campaigns","user_id":3,"user_reg_no":"STF001001","permissions":["crm.campaigns.view"],"permission_ids":[148]} 
[2026-10-01 10:54:37] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/campaigns","user_id":3,"user_reg_no":"STF001001","permissions":["crm.campaigns.view"],"permission_ids":[148]} 
[2026-10-01 10:54:38] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/campaigns","user_id":3,"user_reg_no":"STF001001","permissions":["crm.campaigns.view"],"permission_ids":[148]} 
[2026-10-01 10:54:38] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/campaigns","user_id":3,"user_reg_no":"STF001001","permissions":["crm.campaigns.view"],"permission_ids":[148]} 
[2026-10-01 10:54:39] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/campaigns","user_id":3,"user_reg_no":"STF001001","permissions":["crm.campaigns.view"],"permission_ids":[148]} 
[2026-10-01 10:54:41] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/campaigns","user_id":3,"user_reg_no":"STF001001","permissions":["crm.campaigns.view"],"permission_ids":[148]} 
[2026-10-01 10:54:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:54:42] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/campaigns","user_id":3,"user_reg_no":"STF001001","permissions":["crm.campaigns.view"],"permission_ids":[148]} 
[2026-10-01 10:54:43] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/campaigns","user_id":3,"user_reg_no":"STF001001","permissions":["crm.campaigns.view"],"permission_ids":[148]} 
[2026-10-01 10:54:43] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/campaigns","user_id":3,"user_reg_no":"STF001001","permissions":["crm.campaigns.view"],"permission_ids":[148]} 
[2026-10-01 10:55:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:55:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:55:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:55:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:55:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:55:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:56:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:56:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:56:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:56:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:56:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:56:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:56:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:56:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:57:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:57:17] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/campaigns","user_id":3,"user_reg_no":"STF001001","permissions":["crm.campaigns.view"],"permission_ids":[148]} 
[2026-10-01 10:57:20] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/campaigns","user_id":3,"user_reg_no":"STF001001","permissions":["crm.campaigns.view"],"permission_ids":[148]} 
[2026-10-01 10:57:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:57:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:57:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:57:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:57:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:57:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:57:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:58:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:58:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:58:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:58:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:58:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:58:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:59:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:59:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:59:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:59:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:59:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:59:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 10:59:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:00:26] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 10:45:19","page":1} 
[2026-10-01 11:00:27] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 10:00:26","window_to":"2026-10-01 11:00:26"} 
[2026-10-01 11:00:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:00:28] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 11:00:29] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 11:00:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:00:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:00:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:00:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:00:47] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:00:47] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:00:47] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:00:47] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-01 10:00:47","window_to":"2026-10-01 11:00:47"} 
[2026-10-01 11:00:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:00:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:00:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:00:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:00:59] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:01:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:01:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:01:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:01:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:01:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:01:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:01:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:01:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:01:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:01:55] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:01:55] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:01:57] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/crm/workflows","user_id":3,"user_reg_no":"STF001001","permissions":["crm.workflows.view"],"permission_ids":[176]} 
[2026-10-01 11:02:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:02:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:02:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:02:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:02:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:02:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:02:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:02:55] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:03:16] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/campaigns","user_id":3,"user_reg_no":"STF001001","permissions":["crm.campaigns.view"],"permission_ids":[148]} 
[2026-10-01 11:03:17] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/campaigns","user_id":3,"user_reg_no":"STF001001","permissions":["crm.campaigns.view"],"permission_ids":[148]} 
[2026-10-01 11:03:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:03:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:03:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:03:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:03:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:03:55] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:03:55] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:04:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:04:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:04:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:04:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:04:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:04:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:04:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:04:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:04:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:04:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:04:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:04:58] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/crm/workflows","user_id":3,"user_reg_no":"STF001001","permissions":["crm.workflows.view"],"permission_ids":[176]} 
[2026-10-01 11:05:28] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/campaigns","user_id":3,"user_reg_no":"STF001001","permissions":["crm.campaigns.view"],"permission_ids":[148]} 
[2026-10-01 11:05:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:05:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:05:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:05:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:05:31] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/campaigns","user_id":3,"user_reg_no":"STF001001","permissions":["crm.campaigns.view"],"permission_ids":[148]} 
[2026-10-01 11:05:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:05:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:05:43] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/campaigns","user_id":3,"user_reg_no":"STF001001","permissions":["crm.campaigns.view"],"permission_ids":[148]} 
[2026-10-01 11:05:46] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/campaigns","user_id":3,"user_reg_no":"STF001001","permissions":["crm.campaigns.view"],"permission_ids":[148]} 
[2026-10-01 11:06:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:06:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:06:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:06:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:06:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:06:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:07:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:07:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:07:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:07:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:07:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:07:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:08:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:08:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:08:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:08:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:08:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:08:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:08:47] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:08:50] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/crm/workflows","user_id":3,"user_reg_no":"STF001001","permissions":["crm.workflows.view"],"permission_ids":[176]} 
[2026-10-01 11:08:55] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:08:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:08:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:08:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:09:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:09:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:09:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:09:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:09:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:09:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:10:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:10:28] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/crm/workflows","user_id":3,"user_reg_no":"STF001001","permissions":["crm.workflows.view"],"permission_ids":[176]} 
[2026-10-01 11:10:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:10:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:10:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:10:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:10:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:10:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:10:55] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:10:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:10:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:10:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:11:01] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/crm/workflows","user_id":3,"user_reg_no":"STF001001","permissions":["crm.workflows.view"],"permission_ids":[176]} 
[2026-10-01 11:11:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:11:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:11:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:11:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:11:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:11:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:11:38] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:11:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:11:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:11:55] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:11:56] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/faculties","user_id":3,"user_reg_no":"STF001001","permissions":["academic.faculties.view"],"permission_ids":[307]} 
[2026-10-01 11:11:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:12:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:12:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:12:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:12:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:12:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:12:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:13:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:13:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:13:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:13:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:13:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:13:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:13:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:13:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:13:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:14:15] local.INFO: Lecturer assignment notification sent {"module_offering_id":2,"user_id":9,"role":"lecturer"} 
[2026-10-01 11:14:15] local.INFO: Module offering creation notifications sent {"module_offering_id":2,"module_name":"Introduction","program_name":"Pre-Intermediate"} 
[2026-10-01 11:14:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:14:16] local.INFO: No FCM tokens found for user {"notification_id":58,"user_id":1} 
[2026-10-01 11:14:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:14:16] local.INFO: No FCM tokens found for user {"notification_id":59,"user_id":2} 
[2026-10-01 11:14:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:14:16] local.INFO: No FCM tokens found for user {"notification_id":60,"user_id":9} 
[2026-10-01 11:14:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:14:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:14:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:14:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:14:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:14:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:14:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:14:55] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:14:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:14:59] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:15:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 11:00:26","page":1} 
[2026-10-01 11:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 10:15:18","window_to":"2026-10-01 11:15:18"} 
[2026-10-01 11:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 11:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 11:15:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:15:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:15:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:15:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:15:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:15:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:15:38] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:15:38] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:15:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:15:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:15:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:15:50] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null}  
[2026-10-01 11:15:50] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1"}  
[2026-10-01 11:16:03] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:16:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:16:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:16:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:16:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:16:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:16:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:16:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:16:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:16:38] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:16:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:16:55] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:16:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:16:59] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:17:05] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:17:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:17:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:17:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:17:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:17:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:17:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:17:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:17:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:17:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:18:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:18:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:18:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:18:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:18:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:18:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:18:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:18:34] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/crm/workflows","user_id":3,"user_reg_no":"STF001001","permissions":["crm.workflows.view"],"permission_ids":[176]} 
[2026-10-01 11:18:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:18:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:18:51] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/crm/workflows","user_id":3,"user_reg_no":"STF001001","permissions":["crm.workflows.view"],"permission_ids":[176]} 
[2026-10-01 11:19:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:19:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:19:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:19:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:19:32] local.INFO: Auto-assign: Getting eligible counselors {"branch_id":1,"last_assigned_user_id":null,"last_assigned_staff_id":null} 
[2026-10-01 11:19:32] local.INFO: Auto-assign: Found counselors {"count":0,"counselor_ids":[]} 
[2026-10-01 11:19:32] local.WARNING: Auto-assign: No eligible counselors found {"reason":"No users with is_auto_assign=true role and active staff record","date":"2026-10-01","staff_on_leave_ids":[]} 
[2026-10-01 11:19:38] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:19:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:19:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:20:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:20:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:20:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:20:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:20:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:21:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:21:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:21:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:21:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:21:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:21:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:22:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:22:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:22:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:22:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:22:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:22:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:23:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:23:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:23:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:23:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:23:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:23:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:24:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:24:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:24:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:24:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:24:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:24:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:25:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:25:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:25:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:25:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:25:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:25:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:25:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:26:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:26:17] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/lead-sources/4","user_id":3,"user_reg_no":"STF001001","permissions":["crm.lead_sources.view_detail"],"permission_ids":[268]} 
[2026-10-01 11:26:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:26:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:26:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:26:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:27:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:27:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:27:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:27:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:27:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:27:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:28:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:28:15] local.INFO: No FCM tokens found for user {"notification_id":61,"user_id":3} 
[2026-10-01 11:28:18] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"100","status":"active","branch_id":"1"}  
[2026-10-01 11:28:18] local.INFO: applyStudentFilters branch_id: 1  
[2026-10-01 11:28:19] local.INFO: Entering getAllStudents route. Params: {"limit":"15","page":"1"}  
[2026-10-01 11:28:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:28:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:28:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:28:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:28:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:28:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:29:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:29:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:29:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:29:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:29:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:29:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:29:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:30:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 10:30:22","window_to":"2026-10-01 11:30:22"} 
[2026-10-01 11:30:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 11:15:18","page":1} 
[2026-10-01 11:30:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 11:30:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 11:30:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:30:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:30:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:30:36] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:30:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:30:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:30:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:30:40] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/faculties","user_id":3,"user_reg_no":"STF001001","permissions":["academic.faculties.view"],"permission_ids":[307]} 
[2026-10-01 11:30:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:31:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:31:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:31:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:31:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:31:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:31:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:31:54] local.INFO: Registration Number Generation {"useBatchCode":false,"batchId":1,"env_value":null} 
[2026-10-01 11:31:56] local.INFO: Using backend-style offer letter template  
[2026-10-01 11:31:56] local.INFO: OfferLetterService: generateFinePolicySection invoked  
[2026-10-01 11:31:56] local.INFO: OfferLetterService: fine policy not found, returning empty section  
[2026-10-01 11:31:56] local.INFO: OfferLetterService: fine policy section generated {"included":false,"length":0} 
[2026-10-01 11:31:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:31:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:32:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:32:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:32:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:32:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:32:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:32:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:32:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:33:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:33:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:33:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:33:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:33:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:33:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:34:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:34:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:34:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:34:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:34:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:34:29] local.INFO: Student activated by payment status update {"student_id":81,"previous_status":"active","new_status":"active","outstanding_amount":10000.0,"due_amount":0.0,"due_percentage":0.0,"max_due_percentage":100.0,"has_grace_period":false} 
[2026-10-01 11:34:29] local.INFO: array (
  'success' => true,
  'message' => 'Student status updated to active',
  'student_id' => 81,
  'previous_status' => 'active',
  'current_status' => 'active',
  'payment_info' => 
  array (
    'outstanding_amount' => 10000.0,
    'due_amount' => 0.0,
    'due_items_count' => 0,
    'due_percentage' => 0.0,
    'max_due_percentage' => 100.0,
    'has_grace_period' => false,
  ),
)  
[2026-10-01 11:34:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:34:29] local.INFO: No FCM tokens found for user {"notification_id":62,"user_id":94} 
[2026-10-01 11:34:29] local.INFO: Creating email communication history {"message_id":"msg_qFBSsBRylx","is_scheduled":false,"initial_status":"pending","recipients_count":1,"scheduled_at":null,"has_attachments":false,"per_recipient_records":true} 
[2026-10-01 11:34:29] local.INFO: Starting immediate email send {"message_id":"msg_qFBSsBRylx","recipients_count":1,"history_ids":[5]} 
[2026-10-01 11:34:29] local.ERROR: Email sending failed {"communication_id":5,"recipient":"traveling77@gmail.com","provider":"smtp","error":"No provider configured"} 
[2026-10-01 11:34:29] local.INFO: Immediate email send completed {"message_id":"msg_qFBSsBRylx","total_recipients":1,"history_ids":[5]} 
[2026-10-01 11:34:29] local.ERROR: SMS settings not configured. Please configure the following fields: API Key, API Secret, Sender ID  
[2026-10-01 11:34:29] local.WARNING: Payment SMS failed via job {"phone":"722272345","error":"Error: SMS settings not configured. Please configure the following fields: API Key, API Secret, Sender ID"} 
[2026-10-01 11:34:38] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:34:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:34:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:35:05] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1"}  
[2026-10-01 11:35:26] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null,"branch_id":"1"}  
[2026-10-01 11:35:26] local.INFO: applyStudentFilters branch_id: 1  
[2026-10-01 11:35:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:35:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:35:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:35:36] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null,"branch_id":"1"}  
[2026-10-01 11:35:36] local.INFO: applyStudentFilters branch_id: 1  
[2026-10-01 11:35:36] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:35:36] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:35:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:35:38] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:36:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:36:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:36:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:36:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:36:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:36:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:37:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:37:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:37:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:37:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:37:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:37:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:38:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:38:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:38:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:38:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:38:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:38:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:39:19] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1"}  
[2026-10-01 11:39:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:39:20] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null,"branch_id":"1"}  
[2026-10-01 11:39:20] local.INFO: applyStudentFilters branch_id: 1  
[2026-10-01 11:39:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:39:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:39:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:39:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:39:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:40:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:40:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:40:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:40:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:40:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:40:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:40:40] local.INFO: applyStudentFilters branch_id: 1  
[2026-10-01 11:40:40] local.INFO: applyStudentFilters branch_id: 1  
[2026-10-01 11:41:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:41:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:41:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:41:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:41:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:41:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:41:45] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/crm/workflows","user_id":3,"user_reg_no":"STF001001","permissions":["crm.workflows.view"],"permission_ids":[176]} 
[2026-10-01 11:42:15] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null,"branch_id":"1"}  
[2026-10-01 11:42:15] local.INFO: applyStudentFilters branch_id: 1  
[2026-10-01 11:42:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:42:16] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1"}  
[2026-10-01 11:42:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:42:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:42:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:42:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:42:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:43:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:43:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:43:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:43:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:43:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:43:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:43:38] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null,"branch_id":"1"}  
[2026-10-01 11:43:38] local.INFO: applyStudentFilters branch_id: 1  
[2026-10-01 11:43:39] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1"}  
[2026-10-01 11:44:05] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:44:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:44:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:44:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:44:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:44:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:44:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:45:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 10:45:20","window_to":"2026-10-01 11:45:21"} 
[2026-10-01 11:45:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 11:30:23","page":1} 
[2026-10-01 11:45:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 11:45:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 11:45:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:45:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:45:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:45:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:45:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:45:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:45:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:46:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:46:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:46:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:46:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:46:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:46:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:47:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:47:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:47:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:47:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:47:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:47:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:48:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:48:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:48:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:48:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:48:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:48:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:48:40] local.INFO: No files found in student ID card folder {"folder_path":"studentid/26_000077","disk":"local"} 
[2026-10-01 11:48:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:48:44] local.INFO: No FCM tokens found for user {"notification_id":63,"user_id":94} 
[2026-10-01 11:48:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:48:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:48:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:49:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:49:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:49:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:49:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:49:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:49:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:50:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:50:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:50:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:50:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:50:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:50:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:51:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:51:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:51:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:51:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:51:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:51:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:52:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:52:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:52:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:52:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:52:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:52:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:53:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:53:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:53:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:53:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:53:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:53:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:54:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:54:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:54:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:54:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:54:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:54:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:55:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:55:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:55:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:55:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:55:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:55:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:56:12] local.INFO: No student user IDs found for notifications {"program_id":5,"session_id":2} 
[2026-10-01 11:56:12] local.INFO: Lecturer creation notification sent {"session_id":2,"lecturer_id":4,"lecturer_user_id":9} 
[2026-10-01 11:56:12] local.INFO: Class session notifications sent successfully {"session_id":2,"module_name":"Introduction","program_name":"Pre-Intermediate"} 
[2026-10-01 11:56:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:56:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:56:14] local.INFO: No FCM tokens found for user {"notification_id":64,"user_id":12} 
[2026-10-01 11:56:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:56:14] local.INFO: No FCM tokens found for user {"notification_id":65,"user_id":3} 
[2026-10-01 11:56:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:56:14] local.INFO: No FCM tokens found for user {"notification_id":66,"user_id":9} 
[2026-10-01 11:56:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:56:15] local.INFO: No FCM tokens found for user {"notification_id":67,"user_id":9} 
[2026-10-01 11:56:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:56:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:56:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:56:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:56:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:56:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:56:39] local.INFO: Api Called  
[2026-10-01 11:57:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:57:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:57:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:57:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:57:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:57:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:58:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:58:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:58:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:58:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:58:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:58:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:59:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:59:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:59:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:59:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:59:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 11:59:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 11:45:21","page":1} 
[2026-10-01 12:00:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 11:00:21","window_to":"2026-10-01 12:00:21"} 
[2026-10-01 12:00:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 12:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 12:00:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:00:36] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:00:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:00:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:00:41] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_10_01_12_00_41.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-10-01 12:00:42] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-01 11:00:41","window_to":"2026-10-01 12:00:42"} 
[2026-10-01 12:00:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:00:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:00:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:00:51] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_10_01_12_00_41.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-10-01 12:00:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:00:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:00:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:01:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:01:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:01:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:01:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:01:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:01:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:02:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:02:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:02:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:02:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:02:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:02:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:02:39] local.INFO: Entering getAllStudents route. Params: {"limit":"15","page":"1"}  
[2026-10-01 12:03:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:03:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:03:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:03:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:03:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:03:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:03:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:03:48] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null,"branch_id":"1"}  
[2026-10-01 12:03:48] local.INFO: applyStudentFilters branch_id: 1  
[2026-10-01 12:03:49] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1"}  
[2026-10-01 12:04:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:04:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:04:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:04:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:04:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:04:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:04:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:05:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:05:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:05:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:05:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:05:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:05:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:05:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:05:31] local.INFO: Entering getAllStudents route. Params: {"limit":"15","page":"1"}  
[2026-10-01 12:06:18] local.INFO: Entering getAllStudents route. Params: {"limit":"15","page":"1"}  
[2026-10-01 12:06:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:06:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:06:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:06:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:06:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:06:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:06:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:07:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:07:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:07:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:07:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:07:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:07:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:08:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:08:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:08:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:08:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:08:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:08:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:08:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:09:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:09:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:09:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:09:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:09:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:09:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:10:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:10:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:10:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:10:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:10:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:10:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:10:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:11:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:11:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:11:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:11:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:11:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:12:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:12:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:12:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:12:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:12:19] local.INFO: No FCM tokens found for user {"notification_id":68,"user_id":12} 
[2026-10-01 12:12:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:12:19] local.INFO: No FCM tokens found for user {"notification_id":69,"user_id":3} 
[2026-10-01 12:12:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:12:19] local.INFO: No FCM tokens found for user {"notification_id":70,"user_id":9} 
[2026-10-01 12:12:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:12:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:12:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:12:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:12:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:12:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:13:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:13:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:13:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:13:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:13:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:13:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:14:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:14:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:14:19] local.INFO: Entering getAllStudents route. Params: {"limit":"15","page":"1"}  
[2026-10-01 12:14:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:14:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:14:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:14:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:14:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:15:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 12:00:21","page":1} 
[2026-10-01 12:15:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 11:15:20","window_to":"2026-10-01 12:15:20"} 
[2026-10-01 12:15:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 12:15:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 12:15:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:15:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:15:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:15:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:15:36] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:15:36] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:15:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:15:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:15:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:16:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:16:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:16:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:16:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:16:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:16:50] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/faculties","user_id":3,"user_reg_no":"STF001001","permissions":["academic.faculties.view"],"permission_ids":[307]} 
[2026-10-01 12:17:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:17:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:17:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:17:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:17:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:17:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:18:02] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/faculties","user_id":3,"user_reg_no":"STF001001","permissions":["academic.faculties.view"],"permission_ids":[307]} 
[2026-10-01 12:18:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:18:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:18:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:18:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:18:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:18:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:19:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:19:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:19:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:19:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:19:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:19:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:20:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:20:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:20:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:20:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:20:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:20:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:20:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:20:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:20:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:21:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:21:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:21:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:21:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:21:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:22:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:22:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:22:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:22:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:23:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:23:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:23:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:23:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:24:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:24:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:24:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:24:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:25:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:25:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:25:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:25:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:26:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:26:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:26:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:26:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:27:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:27:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:27:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:27:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:28:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:28:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:28:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:28:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:29:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:29:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:29:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:29:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:30:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 12:15:20","page":1} 
[2026-10-01 12:30:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 11:30:22","window_to":"2026-10-01 12:30:22"} 
[2026-10-01 12:30:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 12:30:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 12:30:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:30:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:30:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:30:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:30:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:31:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:31:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:31:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:31:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:32:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:32:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:32:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:32:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:33:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:33:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:33:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:33:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:34:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:34:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:34:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:34:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:35:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:35:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:35:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:35:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:36:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:36:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:36:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:36:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:37:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:37:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:37:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:37:55] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:38:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:38:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:39:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:39:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:39:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:39:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:39:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:39:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:40:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:40:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:41:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:41:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:42:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:42:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:43:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:43:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:43:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:43:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:44:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:44:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:44:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:44:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:45:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 12:30:23","page":1} 
[2026-10-01 12:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 11:45:20","window_to":"2026-10-01 12:45:20"} 
[2026-10-01 12:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 12:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 12:45:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:45:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:45:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:45:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:46:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:46:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:46:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:46:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:47:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:47:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:47:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:47:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:48:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:48:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:48:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:48:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:49:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:49:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:49:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:49:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:50:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:50:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:51:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:51:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:52:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:52:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:53:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:53:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:54:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:54:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:55:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:55:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:56:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:56:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:56:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:57:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:57:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:58:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:58:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:59:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 12:59:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 12:00:20","window_to":"2026-10-01 13:00:21"} 
[2026-10-01 13:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 12:45:20","page":1} 
[2026-10-01 13:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 13:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 13:00:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:00:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:00:39] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-01 12:00:38","window_to":"2026-10-01 13:00:39"} 
[2026-10-01 13:01:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:01:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:01:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:02:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:02:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:03:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:03:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:04:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:04:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:05:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:05:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:06:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:06:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:07:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:07:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:08:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:08:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:08:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:09:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:09:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:10:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:10:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:11:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:11:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:12:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:12:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:13:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:13:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:14:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:14:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 13:00:21","page":1} 
[2026-10-01 13:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 12:15:16","window_to":"2026-10-01 13:15:16"} 
[2026-10-01 13:15:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 13:15:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 13:15:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:15:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:16:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:16:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:17:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:17:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:18:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:18:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:19:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:19:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:20:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:20:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:21:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:21:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:22:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:22:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:23:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:23:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:24:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:24:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:25:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:25:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:26:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:26:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:27:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:27:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:28:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:28:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:29:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:29:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:30:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 12:30:24","window_to":"2026-10-01 13:30:24"} 
[2026-10-01 13:30:26] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 13:15:16","page":1} 
[2026-10-01 13:30:28] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 13:30:28] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 13:30:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:30:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:31:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:31:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:32:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:32:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:33:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:33:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:34:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:34:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:35:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:35:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:36:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:36:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:37:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:37:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:38:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:38:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:39:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:39:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:40:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:40:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:41:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:41:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 13:45:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 12:45:21","window_to":"2026-10-01 13:45:21"} 
[2026-10-01 13:45:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 13:30:26","page":1} 
[2026-10-01 13:45:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 13:45:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 14:00:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 13:45:21","page":1} 
[2026-10-01 14:00:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 13:00:24","window_to":"2026-10-01 14:00:24"} 
[2026-10-01 14:00:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 14:00:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 14:00:42] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-01 13:00:42","window_to":"2026-10-01 14:00:42"} 
[2026-10-01 14:15:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 13:15:21","window_to":"2026-10-01 14:15:21"} 
[2026-10-01 14:15:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 14:00:24","page":1} 
[2026-10-01 14:15:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 14:15:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 14:30:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 14:15:21","page":1} 
[2026-10-01 14:30:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 13:30:23","window_to":"2026-10-01 14:30:23"} 
[2026-10-01 14:30:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 14:30:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 14:45:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 13:45:21","window_to":"2026-10-01 14:45:21"} 
[2026-10-01 14:45:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 14:30:23","page":1} 
[2026-10-01 14:45:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 14:45:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 15:00:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 14:45:22","page":1} 
[2026-10-01 15:00:26] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 14:00:25","window_to":"2026-10-01 15:00:26"} 
[2026-10-01 15:00:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 15:00:27] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 15:00:43] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-01 14:00:43","window_to":"2026-10-01 15:00:43"} 
[2026-10-01 15:15:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 14:15:19","window_to":"2026-10-01 15:15:20"} 
[2026-10-01 15:15:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 15:00:25","page":1} 
[2026-10-01 15:15:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 15:15:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 15:30:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 14:30:21","window_to":"2026-10-01 15:30:21"} 
[2026-10-01 15:30:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 15:15:21","page":1} 
[2026-10-01 15:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 15:30:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 15:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 14:45:18","window_to":"2026-10-01 15:45:19"} 
[2026-10-01 15:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 15:30:21","page":1} 
[2026-10-01 15:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 15:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 16:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 15:45:19","page":1} 
[2026-10-01 16:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 15:00:20","window_to":"2026-10-01 16:00:20"} 
[2026-10-01 16:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 16:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 16:00:40] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-01 15:00:40","window_to":"2026-10-01 16:00:40"} 
[2026-10-01 16:15:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 16:00:20","page":1} 
[2026-10-01 16:15:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 15:15:22","window_to":"2026-10-01 16:15:22"} 
[2026-10-01 16:15:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 16:15:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 16:30:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 15:30:21","window_to":"2026-10-01 16:30:21"} 
[2026-10-01 16:30:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 16:15:21","page":1} 
[2026-10-01 16:30:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 16:30:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 16:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 16:30:22","page":1} 
[2026-10-01 16:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 15:45:19","window_to":"2026-10-01 16:45:19"} 
[2026-10-01 16:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 16:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 16:46:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 16:46:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 16:47:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 16:47:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 16:47:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 16:47:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 16:48:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 16:48:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 16:49:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 16:49:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 16:50:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 16:51:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 16:51:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 16:52:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 16:52:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 16:53:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 16:53:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 16:54:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 16:54:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 16:56:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 16:56:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 16:57:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 16:57:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 16:58:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 16:58:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 16:59:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 16:59:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:00:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 16:00:25","window_to":"2026-10-01 17:00:25"} 
[2026-10-01 17:00:26] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 16:45:18","page":1} 
[2026-10-01 17:00:28] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 17:00:28] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 17:00:43] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-01 16:00:42","window_to":"2026-10-01 17:00:42"} 
[2026-10-01 17:00:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:00:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:01:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:01:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:02:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:02:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:03:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:03:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:04:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:04:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:05:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:05:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:06:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:06:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:07:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:07:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:08:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:08:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:09:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:09:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:10:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:10:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:11:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:11:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:12:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:12:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:13:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:13:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:14:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:14:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:15:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 16:15:19","window_to":"2026-10-01 17:15:19"} 
[2026-10-01 17:15:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 17:00:26","page":1} 
[2026-10-01 17:15:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 17:15:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 17:15:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:15:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:16:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:16:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:17:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:17:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:18:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:18:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:21:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:21:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:22:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:22:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:23:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:23:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:24:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:24:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:25:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:25:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:26:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:26:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:27:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:27:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:28:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:28:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:29:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:29:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:30:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 16:30:21","window_to":"2026-10-01 17:30:21"} 
[2026-10-01 17:30:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 17:15:20","page":1} 
[2026-10-01 17:30:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 17:30:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 17:30:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:30:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:31:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:31:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:32:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:32:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:33:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:33:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:34:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:34:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:35:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:35:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:36:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:36:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:37:50] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:37:50] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:38:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:38:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:39:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:39:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:40:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:40:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:41:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:41:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 17:45:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 17:30:22","page":1} 
[2026-10-01 17:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 16:45:19","window_to":"2026-10-01 17:45:20"} 
[2026-10-01 17:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 17:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 17:52:05] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cache" where "key" in (ims_academy_cache_illuminate:queue:restart)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_illuminate:queue:restart)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(999): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(978): Illuminate\\Database\\Connection->tryAgainIfCausedByLostConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(796): Illuminate\\Database\\Connection->handleQueryException()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(766): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(332): Illuminate\\Queue\\Worker->queueShouldRestart()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(217): Illuminate\\Queue\\Worker->stopIfNecessary()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#26 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#27 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#30 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#31 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(999): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(978): Illuminate\\Database\\Connection->tryAgainIfCausedByLostConnection()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(796): Illuminate\\Database\\Connection->handleQueryException()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(766): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(332): Illuminate\\Queue\\Worker->queueShouldRestart()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(217): Illuminate\\Queue\\Worker->stopIfNecessary()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#35 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#36 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#37 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#40 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#41 {main}
"} 
[2026-10-01 18:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 17:45:20","page":1} 
[2026-10-01 18:00:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 17:00:18","window_to":"2026-10-01 18:00:18"} 
[2026-10-01 18:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 18:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 18:00:34] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-01 17:00:34","window_to":"2026-10-01 18:00:34"} 
[2026-10-01 18:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 17:15:16","window_to":"2026-10-01 18:15:16"} 
[2026-10-01 18:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 18:00:18","page":1} 
[2026-10-01 18:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 18:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 18:22:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-01 18:30:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 17:30:17","window_to":"2026-10-01 18:30:17"} 
[2026-10-01 18:30:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 18:15:17","page":1} 
[2026-10-01 18:30:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 18:30:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 18:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 18:30:18","page":1} 
[2026-10-01 18:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 18:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 17:45:13","window_to":"2026-10-01 18:45:13"} 
[2026-10-01 18:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 19:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 18:00:17","window_to":"2026-10-01 19:00:17"} 
[2026-10-01 19:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 18:45:13","page":1} 
[2026-10-01 19:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 19:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 19:00:32] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-01 18:00:31","window_to":"2026-10-01 19:00:31"} 
[2026-10-01 19:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 19:00:18","page":1} 
[2026-10-01 19:15:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 18:15:14","window_to":"2026-10-01 19:15:15"} 
[2026-10-01 19:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 19:15:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 19:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 19:15:14","page":1} 
[2026-10-01 19:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 19:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 18:30:15","window_to":"2026-10-01 19:30:15"} 
[2026-10-01 19:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 19:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 18:45:12","window_to":"2026-10-01 19:45:12"} 
[2026-10-01 19:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 19:30:14","page":1} 
[2026-10-01 19:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 19:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 20:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 19:00:14","window_to":"2026-10-01 20:00:15"} 
[2026-10-01 20:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 19:45:12","page":1} 
[2026-10-01 20:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 20:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 20:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-01 19:00:26","window_to":"2026-10-01 20:00:26"} 
[2026-10-01 20:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 20:00:15","page":1} 
[2026-10-01 20:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 19:15:12","window_to":"2026-10-01 20:15:12"} 
[2026-10-01 20:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 20:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 20:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 20:15:12","page":1} 
[2026-10-01 20:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 19:30:14","window_to":"2026-10-01 20:30:14"} 
[2026-10-01 20:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 20:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 20:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 20:30:14","page":1} 
[2026-10-01 20:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 19:45:12","window_to":"2026-10-01 20:45:12"} 
[2026-10-01 20:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 20:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 21:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 20:45:12","page":1} 
[2026-10-01 21:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 20:00:14","window_to":"2026-10-01 21:00:14"} 
[2026-10-01 21:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 21:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 21:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-01 20:00:24","window_to":"2026-10-01 21:00:25"} 
[2026-10-01 21:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 21:00:14","page":1} 
[2026-10-01 21:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 21:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 21:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 20:15:12","window_to":"2026-10-01 21:15:12"} 
[2026-10-01 21:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 21:15:11","page":1} 
[2026-10-01 21:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 20:30:13","window_to":"2026-10-01 21:30:13"} 
[2026-10-01 21:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 21:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 21:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 20:45:13","window_to":"2026-10-01 21:45:13"} 
[2026-10-01 21:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 21:30:13","page":1} 
[2026-10-01 21:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 21:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 22:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 21:45:13","page":1} 
[2026-10-01 22:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 21:00:14","window_to":"2026-10-01 22:00:14"} 
[2026-10-01 22:00:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 22:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 22:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-01 21:00:24","window_to":"2026-10-01 22:00:24"} 
[2026-10-01 22:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 22:00:14","page":1} 
[2026-10-01 22:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 21:15:12","window_to":"2026-10-01 22:15:12"} 
[2026-10-01 22:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 22:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 22:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 21:30:15","window_to":"2026-10-01 22:30:15"} 
[2026-10-01 22:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 22:15:12","page":1} 
[2026-10-01 22:30:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 22:30:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 22:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 21:45:12","window_to":"2026-10-01 22:45:12"} 
[2026-10-01 22:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 22:30:16","page":1} 
[2026-10-01 22:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 22:45:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 23:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 22:00:13","window_to":"2026-10-01 23:00:13"} 
[2026-10-01 23:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 22:45:12","page":1} 
[2026-10-01 23:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 23:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 23:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-01 22:00:25","window_to":"2026-10-01 23:00:25"} 
[2026-10-01 23:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 23:00:14","page":1} 
[2026-10-01 23:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 22:15:12","window_to":"2026-10-01 23:15:12"} 
[2026-10-01 23:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 23:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 23:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 23:15:12","page":1} 
[2026-10-01 23:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 22:30:14","window_to":"2026-10-01 23:30:14"} 
[2026-10-01 23:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 23:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-01 23:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 22:45:12","window_to":"2026-10-01 23:45:13"} 
[2026-10-01 23:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 23:30:13","page":1} 
[2026-10-01 23:45:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-01 23:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 00:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-01 23:45:13","page":1} 
[2026-10-02 00:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 23:00:14","window_to":"2026-10-02 00:00:14"} 
[2026-10-02 00:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 00:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 00:00:28] local.INFO: Student payment status check queued {"batches":1,"students":55} 
[2026-10-02 00:00:28] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_10_02_00_00_28.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-10-02 00:00:28] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-01 23:00:28","window_to":"2026-10-02 00:00:28"} 
[2026-10-02 00:00:29] local.INFO: Student payment status cron evaluated {"student_id":5,"admission_no":"26/000001","outstanding_amount":24000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:29] local.INFO: Student payment status cron evaluated {"student_id":13,"admission_no":"26/000009","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:30] local.INFO: Student payment status cron evaluated {"student_id":14,"admission_no":"26/000010","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:30] local.INFO: Student payment status cron evaluated {"student_id":16,"admission_no":"26/000012","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:31] local.INFO: Student payment status cron evaluated {"student_id":17,"admission_no":"26/000013","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:31] local.INFO: Student payment status cron evaluated {"student_id":20,"admission_no":"26/000016","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:31] local.INFO: Student payment status cron evaluated {"student_id":31,"admission_no":"26/000027","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:32] local.INFO: Student payment status cron evaluated {"student_id":32,"admission_no":"26/000028","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:32] local.INFO: Student payment status cron evaluated {"student_id":33,"admission_no":"26/000029","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:32] local.INFO: Student payment status cron evaluated {"student_id":34,"admission_no":"26/000030","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:33] local.INFO: Student payment status cron evaluated {"student_id":35,"admission_no":"26/000031","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:33] local.INFO: Student payment status cron evaluated {"student_id":23,"admission_no":"26/000019","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:33] local.INFO: Student payment status cron evaluated {"student_id":26,"admission_no":"26/000022","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:34] local.INFO: Student payment status cron evaluated {"student_id":28,"admission_no":"26/000024","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:34] local.INFO: Student payment status cron evaluated {"student_id":36,"admission_no":"26/000032","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:35] local.INFO: Student payment status cron evaluated {"student_id":37,"admission_no":"26/000033","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:35] local.INFO: Student payment status cron evaluated {"student_id":38,"admission_no":"26/000034","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:35] local.INFO: Student payment status cron evaluated {"student_id":39,"admission_no":"26/000035","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:36] local.INFO: Student payment status cron evaluated {"student_id":40,"admission_no":"26/000036","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:36] local.INFO: Student payment status cron evaluated {"student_id":43,"admission_no":"26/000039","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:36] local.INFO: Student payment status cron evaluated {"student_id":44,"admission_no":"26/000040","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:37] local.INFO: Student payment status cron evaluated {"student_id":45,"admission_no":"26/000041","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:37] local.INFO: Student payment status cron evaluated {"student_id":46,"admission_no":"26/000042","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:37] local.INFO: Student payment status cron evaluated {"student_id":47,"admission_no":"26/000043","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:37] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_10_02_00_00_28.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-10-02 00:00:38] local.INFO: Student payment status cron evaluated {"student_id":50,"admission_no":"26/000046","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:38] local.INFO: Student payment status cron evaluated {"student_id":51,"admission_no":"26/000047","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:38] local.INFO: Student payment status cron evaluated {"student_id":52,"admission_no":"26/000048","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:39] local.INFO: Student payment status cron evaluated {"student_id":53,"admission_no":"26/000049","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:39] local.INFO: Student payment status cron evaluated {"student_id":54,"admission_no":"26/000050","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:39] local.INFO: Student payment status cron evaluated {"student_id":55,"admission_no":"26/000051","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:39] local.INFO: Student payment status cron evaluated {"student_id":56,"admission_no":"26/000052","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:39] local.INFO: Student payment status cron evaluated {"student_id":57,"admission_no":"26/000053","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:40] local.INFO: Student payment status cron evaluated {"student_id":59,"admission_no":"26/000055","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:40] local.INFO: Student payment status cron evaluated {"student_id":61,"admission_no":"26/000057","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:40] local.INFO: Student payment status cron evaluated {"student_id":63,"admission_no":"26/000059","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:40] local.INFO: Student payment status cron evaluated {"student_id":64,"admission_no":"26/000060","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:40] local.INFO: Student payment status cron evaluated {"student_id":65,"admission_no":"26/000061","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:41] local.INFO: Student payment status cron evaluated {"student_id":66,"admission_no":"26/000062","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:41] local.INFO: Student payment status cron evaluated {"student_id":67,"admission_no":"26/000063","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:41] local.INFO: Student payment status cron evaluated {"student_id":68,"admission_no":"26/000064","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:41] local.INFO: Student payment status cron evaluated {"student_id":69,"admission_no":"26/000065","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:41] local.INFO: Student payment status cron evaluated {"student_id":70,"admission_no":"26/000066","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:42] local.INFO: Student payment status cron evaluated {"student_id":72,"admission_no":"26/000068","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:42] local.INFO: Student payment status cron evaluated {"student_id":73,"admission_no":"26/000069","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:42] local.INFO: Student payment status cron evaluated {"student_id":74,"admission_no":"26/000070","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:42] local.INFO: Student payment status cron evaluated {"student_id":75,"admission_no":"26/000071","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:43] local.INFO: Student payment status cron evaluated {"student_id":76,"admission_no":"26/000072","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:43] local.INFO: Student payment status cron evaluated {"student_id":77,"admission_no":"26/000073","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:43] local.INFO: Student payment status cron evaluated {"student_id":78,"admission_no":"26/000074","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:43] local.INFO: Student payment status cron evaluated {"student_id":80,"admission_no":"26/000076","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:44] local.INFO: Student payment status cron evaluated {"student_id":8,"admission_no":"26/000004","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:44] local.INFO: Student payment status cron evaluated {"student_id":9,"admission_no":"26/000005","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:44] local.INFO: Student payment status cron evaluated {"student_id":22,"admission_no":"26/000018","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:44] local.INFO: Student payment status cron evaluated {"student_id":79,"admission_no":"26/000075","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:00:45] local.INFO: Student payment status cron evaluated {"student_id":81,"admission_no":"26/000077","outstanding_amount":10000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-02 00:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 00:00:14","page":1} 
[2026-10-02 00:15:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 23:15:12","window_to":"2026-10-02 00:15:12"} 
[2026-10-02 00:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 00:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 00:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 00:15:12","page":1} 
[2026-10-02 00:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 23:30:13","window_to":"2026-10-02 00:30:14"} 
[2026-10-02 00:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 00:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 00:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 00:30:13","page":1} 
[2026-10-02 00:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 00:45:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 00:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-01 23:45:12","window_to":"2026-10-02 00:45:12"} 
[2026-10-02 01:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 00:45:11","page":1} 
[2026-10-02 01:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 00:00:14","window_to":"2026-10-02 01:00:14"} 
[2026-10-02 01:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 01:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 01:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-02 00:00:24","window_to":"2026-10-02 01:00:24"} 
[2026-10-02 01:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 00:15:10","window_to":"2026-10-02 01:15:10"} 
[2026-10-02 01:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 01:00:14","page":1} 
[2026-10-02 01:15:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 01:15:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 01:30:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 01:15:11","page":1} 
[2026-10-02 01:30:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 00:30:12","window_to":"2026-10-02 01:30:12"} 
[2026-10-02 01:30:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 01:30:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 01:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 01:30:12","page":1} 
[2026-10-02 01:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 00:45:11","window_to":"2026-10-02 01:45:11"} 
[2026-10-02 01:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 01:45:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 02:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 01:45:11","page":1} 
[2026-10-02 02:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 01:00:13","window_to":"2026-10-02 02:00:13"} 
[2026-10-02 02:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 02:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 02:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-02 01:00:24","window_to":"2026-10-02 02:00:24"} 
[2026-10-02 02:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 02:00:12","page":1} 
[2026-10-02 02:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 01:15:11","window_to":"2026-10-02 02:15:11"} 
[2026-10-02 02:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 02:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 02:30:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 01:30:12","window_to":"2026-10-02 02:30:12"} 
[2026-10-02 02:30:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 02:15:11","page":1} 
[2026-10-02 02:30:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 02:30:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 02:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 02:30:12","page":1} 
[2026-10-02 02:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 01:45:11","window_to":"2026-10-02 02:45:11"} 
[2026-10-02 02:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 02:45:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 03:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 02:00:13","window_to":"2026-10-02 03:00:13"} 
[2026-10-02 03:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 02:45:11","page":1} 
[2026-10-02 03:00:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 03:00:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 03:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-02 02:00:23","window_to":"2026-10-02 03:00:23"} 
[2026-10-02 03:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 03:00:13","page":1} 
[2026-10-02 03:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 02:15:11","window_to":"2026-10-02 03:15:11"} 
[2026-10-02 03:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 03:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 03:30:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 03:15:11","page":1} 
[2026-10-02 03:30:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 02:30:12","window_to":"2026-10-02 03:30:12"} 
[2026-10-02 03:30:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 03:30:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 03:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 02:45:10","window_to":"2026-10-02 03:45:10"} 
[2026-10-02 03:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 03:30:12","page":1} 
[2026-10-02 03:45:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 03:45:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 04:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 03:00:13","window_to":"2026-10-02 04:00:13"} 
[2026-10-02 04:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 03:45:11","page":1} 
[2026-10-02 04:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 04:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 04:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-02 03:00:24","window_to":"2026-10-02 04:00:24"} 
[2026-10-02 04:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 04:00:14","page":1} 
[2026-10-02 04:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 03:15:11","window_to":"2026-10-02 04:15:11"} 
[2026-10-02 04:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 04:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 04:30:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 03:30:12","window_to":"2026-10-02 04:30:12"} 
[2026-10-02 04:30:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 04:15:11","page":1} 
[2026-10-02 04:30:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 04:30:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 04:45:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 03:45:12","window_to":"2026-10-02 04:45:12"} 
[2026-10-02 04:45:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 04:30:12","page":1} 
[2026-10-02 04:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 04:45:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 05:00:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 04:00:13","window_to":"2026-10-02 05:00:13"} 
[2026-10-02 05:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 04:45:12","page":1} 
[2026-10-02 05:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 05:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 05:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-02 04:00:24","window_to":"2026-10-02 05:00:24"} 
[2026-10-02 05:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 05:00:14","page":1} 
[2026-10-02 05:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 04:15:12","window_to":"2026-10-02 05:15:12"} 
[2026-10-02 05:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 05:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 05:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 05:15:12","page":1} 
[2026-10-02 05:30:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 04:30:14","window_to":"2026-10-02 05:30:14"} 
[2026-10-02 05:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 05:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 05:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 04:45:11","window_to":"2026-10-02 05:45:11"} 
[2026-10-02 05:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 05:30:14","page":1} 
[2026-10-02 05:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 05:45:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 06:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 05:45:11","page":1} 
[2026-10-02 06:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 05:00:15","window_to":"2026-10-02 06:00:15"} 
[2026-10-02 06:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 06:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 06:00:25] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-02 05:00:25","window_to":"2026-10-02 06:00:25"} 
[2026-10-02 06:15:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 05:15:11","window_to":"2026-10-02 06:15:11"} 
[2026-10-02 06:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 06:00:15","page":1} 
[2026-10-02 06:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 06:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 06:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 05:30:13","window_to":"2026-10-02 06:30:13"} 
[2026-10-02 06:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 06:15:11","page":1} 
[2026-10-02 06:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 06:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 06:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 05:45:11","window_to":"2026-10-02 06:45:11"} 
[2026-10-02 06:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 06:30:13","page":1} 
[2026-10-02 06:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 06:45:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 07:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 06:45:11","page":1} 
[2026-10-02 07:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 06:00:14","window_to":"2026-10-02 07:00:14"} 
[2026-10-02 07:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 07:00:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 07:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-02 06:00:24","window_to":"2026-10-02 07:00:24"} 
[2026-10-02 07:15:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 07:00:14","page":1} 
[2026-10-02 07:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 06:15:11","window_to":"2026-10-02 07:15:12"} 
[2026-10-02 07:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 07:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 07:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 07:15:11","page":1} 
[2026-10-02 07:30:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 06:30:14","window_to":"2026-10-02 07:30:14"} 
[2026-10-02 07:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 07:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 07:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 07:30:14","page":1} 
[2026-10-02 07:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 06:45:11","window_to":"2026-10-02 07:45:11"} 
[2026-10-02 07:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 07:45:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 08:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 07:45:11","page":1} 
[2026-10-02 08:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 07:00:15","window_to":"2026-10-02 08:00:15"} 
[2026-10-02 08:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 08:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 08:00:29] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-02 07:00:29","window_to":"2026-10-02 08:00:29"} 
[2026-10-02 08:00:30] local.INFO: Payment reminders queued {"batches":1,"students":55} 
[2026-10-02 08:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 08:00:15","page":1} 
[2026-10-02 08:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 07:15:12","window_to":"2026-10-02 08:15:12"} 
[2026-10-02 08:15:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 08:15:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 08:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 07:30:13","window_to":"2026-10-02 08:30:13"} 
[2026-10-02 08:30:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 08:15:12","page":1} 
[2026-10-02 08:30:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 08:30:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 08:45:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 08:30:13","page":1} 
[2026-10-02 08:45:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 07:45:13","window_to":"2026-10-02 08:45:13"} 
[2026-10-02 08:45:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 08:45:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 09:00:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 08:00:14","window_to":"2026-10-02 09:00:14"} 
[2026-10-02 09:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 08:45:13","page":1} 
[2026-10-02 09:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 09:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 09:00:26] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-02 08:00:26","window_to":"2026-10-02 09:00:26"} 
[2026-10-02 09:15:12] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 08:15:12","window_to":"2026-10-02 09:15:12"} 
[2026-10-02 09:15:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 09:00:15","page":1} 
[2026-10-02 09:15:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 09:15:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 09:30:13] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 08:30:13","window_to":"2026-10-02 09:30:13"} 
[2026-10-02 09:30:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 09:15:12","page":1} 
[2026-10-02 09:30:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 09:30:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 09:45:11] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 08:45:11","window_to":"2026-10-02 09:45:11"} 
[2026-10-02 09:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 09:30:14","page":1} 
[2026-10-02 09:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 09:45:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 10:00:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 09:00:14","window_to":"2026-10-02 10:00:14"} 
[2026-10-02 10:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 09:45:11","page":1} 
[2026-10-02 10:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 10:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 10:00:24] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-02 09:00:24","window_to":"2026-10-02 10:00:24"} 
[2026-10-02 10:15:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 09:15:16","window_to":"2026-10-02 10:15:16"} 
[2026-10-02 10:15:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 10:00:14","page":1} 
[2026-10-02 10:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 10:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 10:30:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 09:30:17","window_to":"2026-10-02 10:30:17"} 
[2026-10-02 10:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 10:15:16","page":1} 
[2026-10-02 10:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 10:30:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 10:45:15] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 09:45:15","window_to":"2026-10-02 10:45:15"} 
[2026-10-02 10:45:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 10:30:19","page":1} 
[2026-10-02 10:45:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 10:45:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 11:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 10:45:15","page":1} 
[2026-10-02 11:00:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 10:00:16","window_to":"2026-10-02 11:00:16"} 
[2026-10-02 11:00:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 11:00:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 11:00:30] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-02 10:00:30","window_to":"2026-10-02 11:00:30"} 
[2026-10-02 11:15:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 11:00:16","page":1} 
[2026-10-02 11:15:14] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 10:15:14","window_to":"2026-10-02 11:15:14"} 
[2026-10-02 11:15:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 11:15:15] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 11:30:16] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 10:30:16","window_to":"2026-10-02 11:30:16"} 
[2026-10-02 11:30:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 11:15:14","page":1} 
[2026-10-02 11:30:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 11:30:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 11:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 10:45:17","window_to":"2026-10-02 11:45:17"} 
[2026-10-02 11:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 11:30:16","page":1} 
[2026-10-02 11:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 11:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 12:00:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 11:45:18","page":1} 
[2026-10-02 12:00:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 11:00:23","window_to":"2026-10-02 12:00:23"} 
[2026-10-02 12:00:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 12:00:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 12:01:30] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-02 11:01:29","window_to":"2026-10-02 12:01:29"} 
[2026-10-02 12:01:30] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_10_02_12_01_30.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-10-02 12:01:38] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_10_02_12_01_30.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-10-02 12:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 11:15:17","window_to":"2026-10-02 12:15:17"} 
[2026-10-02 12:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 12:00:23","page":1} 
[2026-10-02 12:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 12:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 12:30:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 12:15:17","page":1} 
[2026-10-02 12:30:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 11:30:21","window_to":"2026-10-02 12:30:21"} 
[2026-10-02 12:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 12:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 12:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 11:45:18","window_to":"2026-10-02 12:45:18"} 
[2026-10-02 12:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 12:30:21","page":1} 
[2026-10-02 12:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 12:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 13:00:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 12:00:21","window_to":"2026-10-02 13:00:22"} 
[2026-10-02 13:00:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 12:45:19","page":1} 
[2026-10-02 13:00:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 13:00:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 13:00:43] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-02 12:00:42","window_to":"2026-10-02 13:00:42"} 
[2026-10-02 13:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 12:15:18","window_to":"2026-10-02 13:15:18"} 
[2026-10-02 13:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 13:00:23","page":1} 
[2026-10-02 13:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 13:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 13:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 12:30:19","window_to":"2026-10-02 13:30:19"} 
[2026-10-02 13:30:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 13:15:19","page":1} 
[2026-10-02 13:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 13:30:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 13:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 12:45:18","window_to":"2026-10-02 13:45:18"} 
[2026-10-02 13:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 13:30:21","page":1} 
[2026-10-02 13:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 13:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 14:00:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 13:00:19","window_to":"2026-10-02 14:00:19"} 
[2026-10-02 14:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 13:45:19","page":1} 
[2026-10-02 14:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 14:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 14:00:40] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-02 13:00:39","window_to":"2026-10-02 14:00:40"} 
[2026-10-02 14:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 13:15:17","window_to":"2026-10-02 14:15:17"} 
[2026-10-02 14:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 14:00:21","page":1} 
[2026-10-02 14:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 14:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 14:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 14:15:18","page":1} 
[2026-10-02 14:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 13:30:19","window_to":"2026-10-02 14:30:19"} 
[2026-10-02 14:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 14:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 14:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 13:45:17","window_to":"2026-10-02 14:45:17"} 
[2026-10-02 14:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 14:30:19","page":1} 
[2026-10-02 14:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 14:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 15:00:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 14:45:18","page":1} 
[2026-10-02 15:00:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 14:00:23","window_to":"2026-10-02 15:00:24"} 
[2026-10-02 15:00:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 15:00:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 15:00:40] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-02 14:00:40","window_to":"2026-10-02 15:00:40"} 
[2026-10-02 15:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 15:00:23","page":1} 
[2026-10-02 15:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 14:15:19","window_to":"2026-10-02 15:15:19"} 
[2026-10-02 15:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 15:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 15:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 14:30:19","window_to":"2026-10-02 15:30:19"} 
[2026-10-02 15:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 15:15:18","page":1} 
[2026-10-02 15:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 15:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 15:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 15:30:20","page":1} 
[2026-10-02 15:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 14:45:19","window_to":"2026-10-02 15:45:19"} 
[2026-10-02 15:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 15:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 16:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 15:45:19","page":1} 
[2026-10-02 16:00:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 15:00:20","window_to":"2026-10-02 16:00:20"} 
[2026-10-02 16:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 16:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 16:00:37] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-02 15:00:36","window_to":"2026-10-02 16:00:36"} 
[2026-10-02 16:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 15:15:16","window_to":"2026-10-02 16:15:16"} 
[2026-10-02 16:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 16:00:20","page":1} 
[2026-10-02 16:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 16:15:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 16:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 16:15:17","page":1} 
[2026-10-02 16:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 16:30:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 15:30:21","window_to":"2026-10-02 16:30:21"} 
[2026-10-02 16:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 16:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 15:45:17","window_to":"2026-10-02 16:45:17"} 
[2026-10-02 16:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 16:30:20","page":1} 
[2026-10-02 16:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 16:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 17:00:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 16:45:17","page":1} 
[2026-10-02 17:00:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 16:00:23","window_to":"2026-10-02 17:00:23"} 
[2026-10-02 17:00:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 17:00:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 17:00:40] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-02 16:00:40","window_to":"2026-10-02 17:00:40"} 
[2026-10-02 17:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 17:00:23","page":1} 
[2026-10-02 17:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 16:15:18","window_to":"2026-10-02 17:15:18"} 
[2026-10-02 17:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 17:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 17:30:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 17:15:18","page":1} 
[2026-10-02 17:30:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 16:30:19","window_to":"2026-10-02 17:30:19"} 
[2026-10-02 17:30:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 17:30:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 17:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 17:30:19","page":1} 
[2026-10-02 17:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-02 16:45:17","window_to":"2026-10-02 17:45:17"} 
[2026-10-02 17:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 17:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 18:02:22] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is in recovery mode (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cache" where "key" in (ims_academy_cache_illuminate:queue:restart)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is in recovery mode (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_illuminate:queue:restart)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(999): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(978): Illuminate\\Database\\Connection->tryAgainIfCausedByLostConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(796): Illuminate\\Database\\Connection->handleQueryException()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(766): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(332): Illuminate\\Queue\\Worker->queueShouldRestart()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(217): Illuminate\\Queue\\Worker->stopIfNecessary()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#26 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#27 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#30 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#31 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is in recovery mode at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(999): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(978): Illuminate\\Database\\Connection->tryAgainIfCausedByLostConnection()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(796): Illuminate\\Database\\Connection->handleQueryException()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(766): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(332): Illuminate\\Queue\\Worker->queueShouldRestart()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(217): Illuminate\\Queue\\Worker->stopIfNecessary()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#35 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#36 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#37 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#40 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#41 {main}
"} 
[2026-10-02 18:02:23] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is in recovery mode (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "tiktok_webhook_events" where "status" = pending and "next_retry_at" <= 2026-10-02 18:02:17 and "retry_count" < "max_retries" order by "next_retry_at" asc) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is in recovery mode (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"tiktok_webhook_events\" where \"status\" = pending and \"next_retry_at\" <= 2026-10-02 18:02:17 and \"retry_count\" < \"max_retries\" order by \"next_retry_at\" asc) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(999): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(978): Illuminate\\Database\\Connection->tryAgainIfCausedByLostConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(796): Illuminate\\Database\\Connection->handleQueryException()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(902): Illuminate\\Database\\Query\\Builder->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(884): Illuminate\\Database\\Eloquent\\Builder->getModels()
#10 /var/www/html/api_loyala_backend/app/Models/TikTokWebhookEvent.php(77): Illuminate\\Database\\Eloquent\\Builder->get()
#11 /var/www/html/api_loyala_backend/app/Console/Commands/ProcessTikTokWebhookRetries.php(19): App\\Models\\TikTokWebhookEvent::getPendingRetries()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): App\\Console\\Commands\\ProcessTikTokWebhookRetries->handle()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#18 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#20 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#22 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#25 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#26 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is in recovery mode at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(999): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(978): Illuminate\\Database\\Connection->tryAgainIfCausedByLostConnection()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(796): Illuminate\\Database\\Connection->handleQueryException()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(902): Illuminate\\Database\\Query\\Builder->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(884): Illuminate\\Database\\Eloquent\\Builder->getModels()
#20 /var/www/html/api_loyala_backend/app/Models/TikTokWebhookEvent.php(77): Illuminate\\Database\\Eloquent\\Builder->get()
#21 /var/www/html/api_loyala_backend/app/Console/Commands/ProcessTikTokWebhookRetries.php(19): App\\Models\\TikTokWebhookEvent::getPendingRetries()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): App\\Console\\Commands\\ProcessTikTokWebhookRetries->handle()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#28 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#30 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#35 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#36 {main}
"} 
[2026-10-02 18:02:23] local.ERROR: Auto-checkout failed {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is in recovery mode (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"key\" = auto_checkout_enabled and \"settings\".\"deleted_at\" is null limit 1)","trace":"#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(999): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(978): Illuminate\\Database\\Connection->tryAgainIfCausedByLostConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(796): Illuminate\\Database\\Connection->handleQueryException()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(902): Illuminate\\Database\\Query\\Builder->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(884): Illuminate\\Database\\Eloquent\\Builder->getModels()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php(366): Illuminate\\Database\\Eloquent\\Builder->get()
#11 /var/www/html/api_loyala_backend/app/Models/Setting.php(96): Illuminate\\Database\\Eloquent\\Builder->first()
#12 /var/www/html/api_loyala_backend/app/Console/Commands/AutoCheckoutStaff.php(31): App\\Models\\Setting::get()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): App\\Console\\Commands\\AutoCheckoutStaff->handle()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#19 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#22 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#26 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#27 {main}"} 
[2026-10-02 18:02:23] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is in recovery mode (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "settings" where "key" = office_start_time and "settings"."deleted_at" is null limit 1) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is in recovery mode (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"key\" = office_start_time and \"settings\".\"deleted_at\" is null limit 1) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(999): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(978): Illuminate\\Database\\Connection->tryAgainIfCausedByLostConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(796): Illuminate\\Database\\Connection->handleQueryException()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(902): Illuminate\\Database\\Query\\Builder->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(884): Illuminate\\Database\\Eloquent\\Builder->getModels()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php(366): Illuminate\\Database\\Eloquent\\Builder->get()
#11 /var/www/html/api_loyala_backend/app/Models/Setting.php(96): Illuminate\\Database\\Eloquent\\Builder->first()
#12 /var/www/html/api_loyala_backend/app/Console/Commands/MarkAbsentStaff.php(34): App\\Models\\Setting::get()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): App\\Console\\Commands\\MarkAbsentStaff->handle()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#19 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#22 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#26 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#27 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is in recovery mode at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(999): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(978): Illuminate\\Database\\Connection->tryAgainIfCausedByLostConnection()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(796): Illuminate\\Database\\Connection->handleQueryException()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(902): Illuminate\\Database\\Query\\Builder->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(884): Illuminate\\Database\\Eloquent\\Builder->getModels()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php(366): Illuminate\\Database\\Eloquent\\Builder->get()
#21 /var/www/html/api_loyala_backend/app/Models/Setting.php(96): Illuminate\\Database\\Eloquent\\Builder->first()
#22 /var/www/html/api_loyala_backend/app/Console/Commands/MarkAbsentStaff.php(34): App\\Models\\Setting::get()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): App\\Console\\Commands\\MarkAbsentStaff->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:02:24] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is in recovery mode (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "communication_history" where "status" = scheduled and "scheduled_at" <= 2026-10-02 18:02:21 order by "scheduled_at" asc) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is in recovery mode (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"communication_history\" where \"status\" = scheduled and \"scheduled_at\" <= 2026-10-02 18:02:21 order by \"scheduled_at\" asc) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(999): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(978): Illuminate\\Database\\Connection->tryAgainIfCausedByLostConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(796): Illuminate\\Database\\Connection->handleQueryException()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(902): Illuminate\\Database\\Query\\Builder->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(884): Illuminate\\Database\\Eloquent\\Builder->getModels()
#10 /var/www/html/api_loyala_backend/app/Console/Commands/ProcessScheduledCommunications.php(26): Illuminate\\Database\\Eloquent\\Builder->get()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): App\\Console\\Commands\\ProcessScheduledCommunications->handle()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#17 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#19 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#20 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#24 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#25 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is in recovery mode at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(999): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(978): Illuminate\\Database\\Connection->tryAgainIfCausedByLostConnection()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(796): Illuminate\\Database\\Connection->handleQueryException()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(902): Illuminate\\Database\\Query\\Builder->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(884): Illuminate\\Database\\Eloquent\\Builder->getModels()
#20 /var/www/html/api_loyala_backend/app/Console/Commands/ProcessScheduledCommunications.php(26): Illuminate\\Database\\Eloquent\\Builder->get()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): App\\Console\\Commands\\ProcessScheduledCommunications->handle()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#27 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#30 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#34 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#35 {main}
"} 
[2026-10-02 18:02:24] local.ERROR: Failed to record webhook health {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is in recovery mode (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select count(*) as aggregate from \"facebook_leads\" where \"received_at\" >= 2026-10-02 17:02:23)"} 
[2026-10-02 18:02:24] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is in recovery mode (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "facebook_webhook_events" where "status" = pending and "next_retry_at" <= 2026-10-02 18:02:22 and "retry_count" < "max_retries" order by "next_retry_at" asc) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is in recovery mode (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"facebook_webhook_events\" where \"status\" = pending and \"next_retry_at\" <= 2026-10-02 18:02:22 and \"retry_count\" < \"max_retries\" order by \"next_retry_at\" asc) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(999): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(978): Illuminate\\Database\\Connection->tryAgainIfCausedByLostConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(796): Illuminate\\Database\\Connection->handleQueryException()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(902): Illuminate\\Database\\Query\\Builder->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(884): Illuminate\\Database\\Eloquent\\Builder->getModels()
#10 /var/www/html/api_loyala_backend/app/Models/FacebookWebhookEvent.php(75): Illuminate\\Database\\Eloquent\\Builder->get()
#11 /var/www/html/api_loyala_backend/app/Console/Commands/ProcessWebhookRetries.php(19): App\\Models\\FacebookWebhookEvent::getPendingRetries()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): App\\Console\\Commands\\ProcessWebhookRetries->handle()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#18 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#20 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#22 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#25 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#26 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is in recovery mode at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(999): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(978): Illuminate\\Database\\Connection->tryAgainIfCausedByLostConnection()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(796): Illuminate\\Database\\Connection->handleQueryException()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(902): Illuminate\\Database\\Query\\Builder->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(884): Illuminate\\Database\\Eloquent\\Builder->getModels()
#20 /var/www/html/api_loyala_backend/app/Models/FacebookWebhookEvent.php(75): Illuminate\\Database\\Eloquent\\Builder->get()
#21 /var/www/html/api_loyala_backend/app/Console/Commands/ProcessWebhookRetries.php(19): App\\Models\\FacebookWebhookEvent::getPendingRetries()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): App\\Console\\Commands\\ProcessWebhookRetries->handle()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#28 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#30 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#35 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#36 {main}
"} 
[2026-10-02 18:02:24] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is in recovery mode (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select "value" from "settings" where "key" = tiktok_access_token and "settings"."deleted_at" is null limit 1) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is in recovery mode (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select \"value\" from \"settings\" where \"key\" = tiktok_access_token and \"settings\".\"deleted_at\" is null limit 1) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(999): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(978): Illuminate\\Database\\Connection->tryAgainIfCausedByLostConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(796): Illuminate\\Database\\Connection->handleQueryException()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(902): Illuminate\\Database\\Query\\Builder->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(884): Illuminate\\Database\\Eloquent\\Builder->getModels()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php(366): Illuminate\\Database\\Eloquent\\Builder->get()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(833): Illuminate\\Database\\Eloquent\\Builder->first()
#12 /var/www/html/api_loyala_backend/app/Services/TikTokLeadService.php(38): Illuminate\\Database\\Eloquent\\Builder->value()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(1168): App\\Services\\TikTokLeadService->__construct()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(933): Illuminate\\Container\\Container->build()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1078): Illuminate\\Container\\Container->resolve()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(864): Illuminate\\Foundation\\Application->resolve()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1058): Illuminate\\Container\\Container->make()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(191): Illuminate\\Foundation\\Application->make()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(127): Illuminate\\Container\\BoundMethod::addDependencyForCallParameter()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Container\\BoundMethod::getMethodDependencies()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#26 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#28 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#30 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#33 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#34 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is in recovery mode at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(999): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(978): Illuminate\\Database\\Connection->tryAgainIfCausedByLostConnection()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(796): Illuminate\\Database\\Connection->handleQueryException()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(902): Illuminate\\Database\\Query\\Builder->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(884): Illuminate\\Database\\Eloquent\\Builder->getModels()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php(366): Illuminate\\Database\\Eloquent\\Builder->get()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(833): Illuminate\\Database\\Eloquent\\Builder->first()
#22 /var/www/html/api_loyala_backend/app/Services/TikTokLeadService.php(38): Illuminate\\Database\\Eloquent\\Builder->value()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(1168): App\\Services\\TikTokLeadService->__construct()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(933): Illuminate\\Container\\Container->build()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1078): Illuminate\\Container\\Container->resolve()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(864): Illuminate\\Foundation\\Application->resolve()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1058): Illuminate\\Container\\Container->make()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(191): Illuminate\\Foundation\\Application->make()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(127): Illuminate\\Container\\BoundMethod::addDependencyForCallParameter()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Container\\BoundMethod::getMethodDependencies()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#36 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#38 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#39 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#40 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#43 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#44 {main}
"} 
[2026-10-02 18:02:24] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is in recovery mode (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "facebook_webhook_health" order by "checked_at" desc limit 1) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is in recovery mode (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"facebook_webhook_health\" order by \"checked_at\" desc limit 1) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(902): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(884): Illuminate\\Database\\Eloquent\\Builder->getModels()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php(366): Illuminate\\Database\\Eloquent\\Builder->get()
#9 /var/www/html/api_loyala_backend/app/Models/FacebookWebhookHealth.php(50): Illuminate\\Database\\Eloquent\\Builder->first()
#10 /var/www/html/api_loyala_backend/app/Services/FacebookWebhookHealthService.php(150): App\\Models\\FacebookWebhookHealth::getLatestHealth()
#11 /var/www/html/api_loyala_backend/app/Console/Commands/RecordWebhookHealth.php(27): App\\Services\\FacebookWebhookHealthService->getCurrentHealth()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): App\\Console\\Commands\\RecordWebhookHealth->handle()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#18 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#20 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#22 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#25 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#26 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is in recovery mode at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(902): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(884): Illuminate\\Database\\Eloquent\\Builder->getModels()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php(366): Illuminate\\Database\\Eloquent\\Builder->get()
#19 /var/www/html/api_loyala_backend/app/Models/FacebookWebhookHealth.php(50): Illuminate\\Database\\Eloquent\\Builder->first()
#20 /var/www/html/api_loyala_backend/app/Services/FacebookWebhookHealthService.php(150): App\\Models\\FacebookWebhookHealth::getLatestHealth()
#21 /var/www/html/api_loyala_backend/app/Console/Commands/RecordWebhookHealth.php(27): App\\Services\\FacebookWebhookHealthService->getCurrentHealth()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): App\\Console\\Commands\\RecordWebhookHealth->handle()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#28 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#30 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#35 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#36 {main}
"} 
[2026-10-02 18:02:25] local.WARNING: ScheduleMonitor could not record run {"command":"app:prune-expired-file-cache","error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is in recovery mode (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_schedule:start:app:prune-expired-file-cache))"} 
[2026-10-02 18:02:26] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: delete from "cache_locks" where "key" = ims_academy_cache_framework/schedule-a80ca01ab078542289caafb809199c97deae4439) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: delete from \"cache_locks\" where \"key\" = ims_academy_cache_framework/schedule-a80ca01ab078542289caafb809199c97deae4439) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(561): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4396): Illuminate\\Database\\Connection->delete()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(150): Illuminate\\Database\\Query\\Builder->delete()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(82): Illuminate\\Cache\\DatabaseLock->forceRelease()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(842): Illuminate\\Console\\Scheduling\\CacheEventMutex->forget()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(226): Illuminate\\Console\\Scheduling\\Event->removeMutex()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(137): Illuminate\\Console\\Scheduling\\Event->finish()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(197): Illuminate\\Console\\Scheduling\\Event->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/View/Components/Task.php(41): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->{closure:Illuminate\\Console\\Scheduling\\ScheduleRunCommand::runEvent():191}()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/View/Components/Factory.php(59): Illuminate\\Console\\View\\Components\\Task->render()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(191): Illuminate\\Console\\View\\Components\\Factory->__call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(134): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->runEvent()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#20 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#22 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#27 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#28 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(561): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4396): Illuminate\\Database\\Connection->delete()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(150): Illuminate\\Database\\Query\\Builder->delete()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(82): Illuminate\\Cache\\DatabaseLock->forceRelease()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(842): Illuminate\\Console\\Scheduling\\CacheEventMutex->forget()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(226): Illuminate\\Console\\Scheduling\\Event->removeMutex()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(137): Illuminate\\Console\\Scheduling\\Event->finish()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(197): Illuminate\\Console\\Scheduling\\Event->run()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/View/Components/Task.php(41): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->{closure:Illuminate\\Console\\Scheduling\\ScheduleRunCommand::runEvent():191}()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/View/Components/Factory.php(59): Illuminate\\Console\\View\\Components\\Task->render()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(191): Illuminate\\Console\\View\\Components\\Factory->__call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(134): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->runEvent()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#28 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#30 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#35 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#36 {main}
"} 
[2026-10-02 18:02:27] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = F47WthXoikrC8TkC, "expiration" = 1791030746 where "key" = ims_academy_cache_framework/schedule-7cc4219a37fdc3c82df3444e6012adb17579062d and ("owner" = F47WthXoikrC8TkC or "expiration" <= 1790944346)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = F47WthXoikrC8TkC, \"expiration\" = 1791030746 where \"key\" = ims_academy_cache_framework/schedule-7cc4219a37fdc3c82df3444e6012adb17579062d and (\"owner\" = F47WthXoikrC8TkC or \"expiration\" <= 1790944346)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:02:40] local.WARNING: ScheduleMonitor could not record run {"command":"communications:process-scheduled","error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_schedule:start:communications:process-scheduled))"} 
[2026-10-02 18:02:40] local.ERROR: Scheduled command failed: communications:process-scheduled {"output":"Checking for scheduled communications that need processing...

In Connection.php line 838:
                                                                               
  SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed:   
  FATAL:  the database system is in recovery mode (Connection: pgsql, Host: 1  
  27.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"communicatio  
  n_history\" where \"status\" = scheduled and \"scheduled_at\" <= 2026-10-02 18:0  
  2:21 order by \"scheduled_at\" asc)                                            
                                                                               

In Connector.php line 67:
                                                                               
  SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed:   
  FATAL:  the database system is in recovery mode                              
                                                                               

"} 
[2026-10-02 18:02:41] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = RG9Weh3S0bms1Z35, "expiration" = 1791030760 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = RG9Weh3S0bms1Z35 or "expiration" <= 1790944360)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = RG9Weh3S0bms1Z35, \"expiration\" = 1791030760 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = RG9Weh3S0bms1Z35 or \"expiration\" <= 1790944360)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:02:41] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = ZucZkQrS1xPw5mK9, "expiration" = 1791030760 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = ZucZkQrS1xPw5mK9 or "expiration" <= 1790944360)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = ZucZkQrS1xPw5mK9, \"expiration\" = 1791030760 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = ZucZkQrS1xPw5mK9 or \"expiration\" <= 1790944360)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:02:41] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: delete from "cache_locks" where "key" = ims_academy_cache_framework/schedule-aa7710bbd4d0faab1a3be95622d946326a1d9ba2) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: delete from \"cache_locks\" where \"key\" = ims_academy_cache_framework/schedule-aa7710bbd4d0faab1a3be95622d946326a1d9ba2) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(561): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4396): Illuminate\\Database\\Connection->delete()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(150): Illuminate\\Database\\Query\\Builder->delete()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(82): Illuminate\\Cache\\DatabaseLock->forceRelease()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(842): Illuminate\\Console\\Scheduling\\CacheEventMutex->forget()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(226): Illuminate\\Console\\Scheduling\\Event->removeMutex()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(46): Illuminate\\Console\\Scheduling\\Event->finish()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php(275): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->{closure:Illuminate\\Console\\Scheduling\\ScheduleFinishCommand::handle():45}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(45): Illuminate\\Support\\Collection->each()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->handle()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#17 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#19 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#20 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#24 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#25 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(561): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4396): Illuminate\\Database\\Connection->delete()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(150): Illuminate\\Database\\Query\\Builder->delete()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(82): Illuminate\\Cache\\DatabaseLock->forceRelease()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(842): Illuminate\\Console\\Scheduling\\CacheEventMutex->forget()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(226): Illuminate\\Console\\Scheduling\\Event->removeMutex()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(46): Illuminate\\Console\\Scheduling\\Event->finish()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php(275): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->{closure:Illuminate\\Console\\Scheduling\\ScheduleFinishCommand::handle():45}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(45): Illuminate\\Support\\Collection->each()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->handle()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#27 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#28 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#32 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#33 {main}
"} 
[2026-10-02 18:02:42] local.WARNING: ScheduleMonitor could not record run {"command":"attendance:auto-checkout","error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_schedule:start:attendance:auto-checkout))"} 
[2026-10-02 18:02:42] local.ERROR: Scheduled command failed: attendance:auto-checkout {"output":"Auto-checkout failed: SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is in recovery mode (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"key\" = auto_checkout_enabled and \"settings\".\"deleted_at\" is null limit 1)
"} 
[2026-10-02 18:02:42] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: delete from "cache_locks" where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: delete from \"cache_locks\" where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(561): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4396): Illuminate\\Database\\Connection->delete()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(150): Illuminate\\Database\\Query\\Builder->delete()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(82): Illuminate\\Cache\\DatabaseLock->forceRelease()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(842): Illuminate\\Console\\Scheduling\\CacheEventMutex->forget()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(226): Illuminate\\Console\\Scheduling\\Event->removeMutex()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(46): Illuminate\\Console\\Scheduling\\Event->finish()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php(275): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->{closure:Illuminate\\Console\\Scheduling\\ScheduleFinishCommand::handle():45}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(45): Illuminate\\Support\\Collection->each()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->handle()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#17 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#19 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#20 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#24 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#25 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(561): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4396): Illuminate\\Database\\Connection->delete()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(150): Illuminate\\Database\\Query\\Builder->delete()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(82): Illuminate\\Cache\\DatabaseLock->forceRelease()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(842): Illuminate\\Console\\Scheduling\\CacheEventMutex->forget()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(226): Illuminate\\Console\\Scheduling\\Event->removeMutex()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(46): Illuminate\\Console\\Scheduling\\Event->finish()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php(275): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->{closure:Illuminate\\Console\\Scheduling\\ScheduleFinishCommand::handle():45}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(45): Illuminate\\Support\\Collection->each()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->handle()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#27 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#28 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#32 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#33 {main}
"} 
[2026-10-02 18:02:43] local.WARNING: ScheduleMonitor could not record run {"command":"facebook:process-webhook-retries","error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_schedule:start:facebook:process-webhook-retries))"} 
[2026-10-02 18:02:43] local.ERROR: Scheduled command failed: facebook:process-webhook-retries {"output":"Processing webhook retries...

In Connection.php line 838:
                                                                               
  SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed:   
  FATAL:  the database system is in recovery mode (Connection: pgsql, Host: 1  
  27.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"facebook_web  
  hook_events\" where \"status\" = pending and \"next_retry_at\" <= 2026-10-02 18:  
  02:22 and \"retry_count\" < \"max_retries\" order by \"next_retry_at\" asc)        
                                                                               

In Connector.php line 67:
                                                                               
  SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed:   
  FATAL:  the database system is in recovery mode                              
                                                                               

"} 
[2026-10-02 18:02:43] local.WARNING: ScheduleMonitor could not record run {"command":"tiktok:process-webhook-retries","error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_schedule:start:tiktok:process-webhook-retries))"} 
[2026-10-02 18:02:43] local.ERROR: Scheduled command failed: tiktok:process-webhook-retries {"output":"Processing TikTok webhook retries...

In Connection.php line 838:
                                                                               
  SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed:   
  FATAL:  the database system is in recovery mode (Connection: pgsql, Host: 1  
  27.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"tiktok_webho  
  ok_events\" where \"status\" = pending and \"next_retry_at\" <= 2026-10-02 18:02  
  :17 and \"retry_count\" < \"max_retries\" order by \"next_retry_at\" asc)          
                                                                               

In Connector.php line 67:
                                                                               
  SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed:   
  FATAL:  the database system is in recovery mode                              
                                                                               

"} 
[2026-10-02 18:02:43] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: delete from "cache_locks" where "key" = ims_academy_cache_framework/schedule-91a26839c26e17d597bd6c4db580f73bf0ab83d0) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: delete from \"cache_locks\" where \"key\" = ims_academy_cache_framework/schedule-91a26839c26e17d597bd6c4db580f73bf0ab83d0) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(561): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4396): Illuminate\\Database\\Connection->delete()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(150): Illuminate\\Database\\Query\\Builder->delete()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(82): Illuminate\\Cache\\DatabaseLock->forceRelease()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(842): Illuminate\\Console\\Scheduling\\CacheEventMutex->forget()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(226): Illuminate\\Console\\Scheduling\\Event->removeMutex()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(46): Illuminate\\Console\\Scheduling\\Event->finish()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php(275): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->{closure:Illuminate\\Console\\Scheduling\\ScheduleFinishCommand::handle():45}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(45): Illuminate\\Support\\Collection->each()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->handle()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#17 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#19 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#20 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#24 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#25 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(561): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4396): Illuminate\\Database\\Connection->delete()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(150): Illuminate\\Database\\Query\\Builder->delete()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(82): Illuminate\\Cache\\DatabaseLock->forceRelease()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(842): Illuminate\\Console\\Scheduling\\CacheEventMutex->forget()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(226): Illuminate\\Console\\Scheduling\\Event->removeMutex()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(46): Illuminate\\Console\\Scheduling\\Event->finish()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php(275): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->{closure:Illuminate\\Console\\Scheduling\\ScheduleFinishCommand::handle():45}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(45): Illuminate\\Support\\Collection->each()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->handle()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#27 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#28 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#32 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#33 {main}
"} 
[2026-10-02 18:02:43] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: delete from "cache_locks" where "key" = ims_academy_cache_framework/schedule-73b2cacfa0e0a101b3fa32e0f38741148d365729) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: delete from \"cache_locks\" where \"key\" = ims_academy_cache_framework/schedule-73b2cacfa0e0a101b3fa32e0f38741148d365729) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(561): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4396): Illuminate\\Database\\Connection->delete()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(150): Illuminate\\Database\\Query\\Builder->delete()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(82): Illuminate\\Cache\\DatabaseLock->forceRelease()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(842): Illuminate\\Console\\Scheduling\\CacheEventMutex->forget()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(226): Illuminate\\Console\\Scheduling\\Event->removeMutex()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(46): Illuminate\\Console\\Scheduling\\Event->finish()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php(275): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->{closure:Illuminate\\Console\\Scheduling\\ScheduleFinishCommand::handle():45}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(45): Illuminate\\Support\\Collection->each()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->handle()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#17 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#19 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#20 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#24 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#25 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(561): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4396): Illuminate\\Database\\Connection->delete()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(150): Illuminate\\Database\\Query\\Builder->delete()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(82): Illuminate\\Cache\\DatabaseLock->forceRelease()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(842): Illuminate\\Console\\Scheduling\\CacheEventMutex->forget()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(226): Illuminate\\Console\\Scheduling\\Event->removeMutex()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(46): Illuminate\\Console\\Scheduling\\Event->finish()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php(275): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->{closure:Illuminate\\Console\\Scheduling\\ScheduleFinishCommand::handle():45}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(45): Illuminate\\Support\\Collection->each()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->handle()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#27 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#28 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#32 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#33 {main}
"} 
[2026-10-02 18:02:43] local.WARNING: ScheduleMonitor could not record run {"command":"hr:mark-absent-staff","error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_schedule:start:hr:mark-absent-staff))"} 
[2026-10-02 18:02:43] local.ERROR: Scheduled command failed: hr:mark-absent-staff {"output":"
In Connection.php line 838:
                                                                               
  SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed:   
  FATAL:  the database system is in recovery mode (Connection: pgsql, Host: 1  
  27.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" wh  
  ere \"key\" = office_start_time and \"settings\".\"deleted_at\" is null limit 1)   
                                                                               

In Connector.php line 67:
                                                                               
  SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed:   
  FATAL:  the database system is in recovery mode                              
                                                                               

"} 
[2026-10-02 18:02:44] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: delete from "cache_locks" where "key" = ims_academy_cache_framework/schedule-55a62890f210706c33a18839cce8bf1bdc604e0e) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: delete from \"cache_locks\" where \"key\" = ims_academy_cache_framework/schedule-55a62890f210706c33a18839cce8bf1bdc604e0e) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(561): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4396): Illuminate\\Database\\Connection->delete()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(150): Illuminate\\Database\\Query\\Builder->delete()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(82): Illuminate\\Cache\\DatabaseLock->forceRelease()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(842): Illuminate\\Console\\Scheduling\\CacheEventMutex->forget()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(226): Illuminate\\Console\\Scheduling\\Event->removeMutex()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(46): Illuminate\\Console\\Scheduling\\Event->finish()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php(275): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->{closure:Illuminate\\Console\\Scheduling\\ScheduleFinishCommand::handle():45}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(45): Illuminate\\Support\\Collection->each()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->handle()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#17 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#19 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#20 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#24 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#25 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(561): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4396): Illuminate\\Database\\Connection->delete()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(150): Illuminate\\Database\\Query\\Builder->delete()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(82): Illuminate\\Cache\\DatabaseLock->forceRelease()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(842): Illuminate\\Console\\Scheduling\\CacheEventMutex->forget()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(226): Illuminate\\Console\\Scheduling\\Event->removeMutex()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(46): Illuminate\\Console\\Scheduling\\Event->finish()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php(275): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->{closure:Illuminate\\Console\\Scheduling\\ScheduleFinishCommand::handle():45}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(45): Illuminate\\Support\\Collection->each()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->handle()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#27 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#28 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#32 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#33 {main}
"} 
[2026-10-02 18:02:44] local.WARNING: ScheduleMonitor could not record run {"command":"facebook:record-webhook-health","error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_schedule:start:facebook:record-webhook-health))"} 
[2026-10-02 18:02:44] local.ERROR: Scheduled command failed: facebook:record-webhook-health {"output":"Recording webhook health metrics...

In Connection.php line 838:
                                                                               
  SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed:   
  FATAL:  the database system is in recovery mode (Connection: pgsql, Host: 1  
  27.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"facebook_web  
  hook_health\" order by \"checked_at\" desc limit 1)                             
                                                                               

In Connector.php line 67:
                                                                               
  SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed:   
  FATAL:  the database system is in recovery mode                              
                                                                               

"} 
[2026-10-02 18:02:44] local.WARNING: ScheduleMonitor could not record run {"command":"tiktok:sync-leads","error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_schedule:start:tiktok:sync-leads))"} 
[2026-10-02 18:02:44] local.ERROR: Scheduled command failed: tiktok:sync-leads {"output":"
In Connection.php line 838:
                                                                               
  SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed:   
  FATAL:  the database system is in recovery mode (Connection: pgsql, Host: 1  
  27.0.0.1, Port: 5432, Database: loyola_db, SQL: select \"value\" from \"settin  
  gs\" where \"key\" = tiktok_access_token and \"settings\".\"deleted_at\" is null l  
  imit 1)                                                                      
                                                                               

In Connector.php line 67:
                                                                               
  SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed:   
  FATAL:  the database system is in recovery mode                              
                                                                               

"} 
[2026-10-02 18:02:44] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: delete from "cache_locks" where "key" = ims_academy_cache_framework/schedule-e71aad3163f4153ecd469e2872e33e5687d9fd8e) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: delete from \"cache_locks\" where \"key\" = ims_academy_cache_framework/schedule-e71aad3163f4153ecd469e2872e33e5687d9fd8e) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(561): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4396): Illuminate\\Database\\Connection->delete()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(150): Illuminate\\Database\\Query\\Builder->delete()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(82): Illuminate\\Cache\\DatabaseLock->forceRelease()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(842): Illuminate\\Console\\Scheduling\\CacheEventMutex->forget()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(226): Illuminate\\Console\\Scheduling\\Event->removeMutex()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(46): Illuminate\\Console\\Scheduling\\Event->finish()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php(275): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->{closure:Illuminate\\Console\\Scheduling\\ScheduleFinishCommand::handle():45}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(45): Illuminate\\Support\\Collection->each()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->handle()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#17 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#19 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#20 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#24 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#25 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(561): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4396): Illuminate\\Database\\Connection->delete()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(150): Illuminate\\Database\\Query\\Builder->delete()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(82): Illuminate\\Cache\\DatabaseLock->forceRelease()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(842): Illuminate\\Console\\Scheduling\\CacheEventMutex->forget()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(226): Illuminate\\Console\\Scheduling\\Event->removeMutex()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(46): Illuminate\\Console\\Scheduling\\Event->finish()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php(275): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->{closure:Illuminate\\Console\\Scheduling\\ScheduleFinishCommand::handle():45}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(45): Illuminate\\Support\\Collection->each()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->handle()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#27 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#28 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#32 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#33 {main}
"} 
[2026-10-02 18:02:44] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: delete from "cache_locks" where "key" = ims_academy_cache_framework/schedule-5b92a2b53e116666bd136ed4408b762e5d3defa1) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: delete from \"cache_locks\" where \"key\" = ims_academy_cache_framework/schedule-5b92a2b53e116666bd136ed4408b762e5d3defa1) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(561): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4396): Illuminate\\Database\\Connection->delete()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(150): Illuminate\\Database\\Query\\Builder->delete()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(82): Illuminate\\Cache\\DatabaseLock->forceRelease()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(842): Illuminate\\Console\\Scheduling\\CacheEventMutex->forget()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(226): Illuminate\\Console\\Scheduling\\Event->removeMutex()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(46): Illuminate\\Console\\Scheduling\\Event->finish()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php(275): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->{closure:Illuminate\\Console\\Scheduling\\ScheduleFinishCommand::handle():45}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(45): Illuminate\\Support\\Collection->each()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->handle()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#17 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#19 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#20 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#24 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#25 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(561): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4396): Illuminate\\Database\\Connection->delete()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(150): Illuminate\\Database\\Query\\Builder->delete()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(82): Illuminate\\Cache\\DatabaseLock->forceRelease()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(842): Illuminate\\Console\\Scheduling\\CacheEventMutex->forget()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(226): Illuminate\\Console\\Scheduling\\Event->removeMutex()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(46): Illuminate\\Console\\Scheduling\\Event->finish()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php(275): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->{closure:Illuminate\\Console\\Scheduling\\ScheduleFinishCommand::handle():45}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php(45): Illuminate\\Support\\Collection->each()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleFinishCommand->handle()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#27 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#28 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#32 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#33 {main}
"} 
[2026-10-02 18:03:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = qrjrhtxVtHSidbNq, "expiration" = 1791030783 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = qrjrhtxVtHSidbNq or "expiration" <= 1790944383)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = qrjrhtxVtHSidbNq, \"expiration\" = 1791030783 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = qrjrhtxVtHSidbNq or \"expiration\" <= 1790944383)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:04:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = Ao7813NmSd0PbxqN, "expiration" = 1791030843 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = Ao7813NmSd0PbxqN or "expiration" <= 1790944443)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = Ao7813NmSd0PbxqN, \"expiration\" = 1791030843 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = Ao7813NmSd0PbxqN or \"expiration\" <= 1790944443)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:04:44] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cache" where "key" in (ims_academy_cache_illuminate:queue:restart)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_illuminate:queue:restart)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(160): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#19 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#22 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#26 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#27 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(160): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:04:46] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cache" where "key" in (ims_academy_cache_illuminate:queue:restart)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_illuminate:queue:restart)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(160): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#19 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#22 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#26 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#27 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(160): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:04:47] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cache" where "key" in (ims_academy_cache_illuminate:queue:restart)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_illuminate:queue:restart)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(160): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#19 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#22 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#26 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#27 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(160): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:04:49] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cache" where "key" in (ims_academy_cache_illuminate:queue:restart)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_illuminate:queue:restart)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(160): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#19 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#22 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#26 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#27 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(160): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:04:50] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cache" where "key" in (ims_academy_cache_illuminate:queue:restart)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_illuminate:queue:restart)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(160): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#19 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#22 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#26 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#27 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(160): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:04:52] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cache" where "key" in (ims_academy_cache_illuminate:queue:restart)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_illuminate:queue:restart)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(160): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#19 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#22 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#26 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#27 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(160): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:04:53] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cache" where "key" in (ims_academy_cache_illuminate:queue:restart)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_illuminate:queue:restart)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(160): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#19 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#22 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#26 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#27 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(160): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:04:56] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cache" where "key" in (ims_academy_cache_illuminate:queue:restart)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_illuminate:queue:restart)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(160): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#19 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#22 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#26 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#27 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(160): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:05:00] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cache" where "key" in (ims_academy_cache_illuminate:queue:restart)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_illuminate:queue:restart)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(160): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#19 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#22 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#26 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#27 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(160): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:05:05] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = RZu2qdgIJTNllVpw, "expiration" = 1791030904 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = RZu2qdgIJTNllVpw or "expiration" <= 1790944504)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = RZu2qdgIJTNllVpw, \"expiration\" = 1791030904 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = RZu2qdgIJTNllVpw or \"expiration\" <= 1790944504)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:05:06] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cache" where "key" in (ims_academy_cache_illuminate:queue:restart)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_illuminate:queue:restart)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(160): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#19 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#22 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#26 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#27 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(160): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:05:10] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cache" where "key" in (ims_academy_cache_illuminate:queue:restart)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_illuminate:queue:restart)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(160): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#19 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#22 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#26 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#27 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(160): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:05:11] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cache" where "key" in (ims_academy_cache_illuminate:queue:restart)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_illuminate:queue:restart)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(160): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#19 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#22 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#26 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#27 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(160): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:05:14] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cache" where "key" in (ims_academy_cache_illuminate:queue:restart)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_illuminate:queue:restart)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(160): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#19 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#22 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#26 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#27 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(160): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:05:17] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cache" where "key" in (ims_academy_cache_illuminate:queue:restart)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_illuminate:queue:restart)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(160): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#19 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#22 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#26 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#27 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(160): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:05:19] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cache" where "key" in (ims_academy_cache_illuminate:queue:restart)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_illuminate:queue:restart)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(160): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#19 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#22 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#26 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#27 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(160): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:05:21] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cache" where "key" in (ims_academy_cache_illuminate:queue:restart)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_illuminate:queue:restart)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(160): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#19 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#22 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#26 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#27 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(160): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:05:24] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cache" where "key" in (ims_academy_cache_illuminate:queue:restart)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_illuminate:queue:restart)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(160): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#19 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#22 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#26 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#27 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(160): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:05:27] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cache" where "key" in (ims_academy_cache_illuminate:queue:restart)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_illuminate:queue:restart)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(160): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#19 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#22 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#26 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#27 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(781): Illuminate\\Cache\\Repository->get()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(160): Illuminate\\Queue\\Worker->getTimestampOfLastQueueRestart()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(148): Illuminate\\Queue\\Worker->daemon()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(131): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Queue\\Console\\WorkCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:06:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = 48Um8DBZygf0SOpG, "expiration" = 1791030963 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = 48Um8DBZygf0SOpG or "expiration" <= 1790944563)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = 48Um8DBZygf0SOpG, \"expiration\" = 1791030963 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = 48Um8DBZygf0SOpG or \"expiration\" <= 1790944563)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:07:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = cg2RmHnWfE2Q1Not, "expiration" = 1791031023 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = cg2RmHnWfE2Q1Not or "expiration" <= 1790944623)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = cg2RmHnWfE2Q1Not, \"expiration\" = 1791031023 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = cg2RmHnWfE2Q1Not or \"expiration\" <= 1790944623)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:08:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = E7Bix542tXMnzLEj, "expiration" = 1791031083 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = E7Bix542tXMnzLEj or "expiration" <= 1790944683)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = E7Bix542tXMnzLEj, \"expiration\" = 1791031083 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = E7Bix542tXMnzLEj or \"expiration\" <= 1790944683)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:09:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = 8Gxg5VsgQiO5zexX, "expiration" = 1791031144 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = 8Gxg5VsgQiO5zexX or "expiration" <= 1790944744)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = 8Gxg5VsgQiO5zexX, \"expiration\" = 1791031144 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = 8Gxg5VsgQiO5zexX or \"expiration\" <= 1790944744)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:10:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = V5kxESv5Oc9TP91l, "expiration" = 1791031204 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = V5kxESv5Oc9TP91l or "expiration" <= 1790944804)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = V5kxESv5Oc9TP91l, \"expiration\" = 1791031204 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = V5kxESv5Oc9TP91l or \"expiration\" <= 1790944804)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:11:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = ehke4o9GS20UHX9i, "expiration" = 1791031263 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = ehke4o9GS20UHX9i or "expiration" <= 1790944863)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = ehke4o9GS20UHX9i, \"expiration\" = 1791031263 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = ehke4o9GS20UHX9i or \"expiration\" <= 1790944863)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:12:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = wsL28tp3p01bZO9d, "expiration" = 1791031324 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = wsL28tp3p01bZO9d or "expiration" <= 1790944924)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = wsL28tp3p01bZO9d, \"expiration\" = 1791031324 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = wsL28tp3p01bZO9d or \"expiration\" <= 1790944924)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:13:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = vy88sYv377zloMGt, "expiration" = 1791031383 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = vy88sYv377zloMGt or "expiration" <= 1790944983)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = vy88sYv377zloMGt, \"expiration\" = 1791031383 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = vy88sYv377zloMGt or \"expiration\" <= 1790944983)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:14:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = wPtO0IS3EbeLog1u, "expiration" = 1791031444 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = wPtO0IS3EbeLog1u or "expiration" <= 1790945044)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = wPtO0IS3EbeLog1u, \"expiration\" = 1791031444 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = wPtO0IS3EbeLog1u or \"expiration\" <= 1790945044)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:15:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = iUqiwlToKqmXizZ6, "expiration" = 1791031504 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = iUqiwlToKqmXizZ6 or "expiration" <= 1790945104)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = iUqiwlToKqmXizZ6, \"expiration\" = 1791031504 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = iUqiwlToKqmXizZ6 or \"expiration\" <= 1790945104)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:16:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = zoLw3TN7REqOwinU, "expiration" = 1791031563 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = zoLw3TN7REqOwinU or "expiration" <= 1790945163)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = zoLw3TN7REqOwinU, \"expiration\" = 1791031563 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = zoLw3TN7REqOwinU or \"expiration\" <= 1790945163)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:17:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = 38og1XwDdRuSQO55, "expiration" = 1791031623 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = 38og1XwDdRuSQO55 or "expiration" <= 1790945223)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = 38og1XwDdRuSQO55, \"expiration\" = 1791031623 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = 38og1XwDdRuSQO55 or \"expiration\" <= 1790945223)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:18:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = dAWM16LMYphpvSXI, "expiration" = 1791031684 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = dAWM16LMYphpvSXI or "expiration" <= 1790945284)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = dAWM16LMYphpvSXI, \"expiration\" = 1791031684 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = dAWM16LMYphpvSXI or \"expiration\" <= 1790945284)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:19:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = 9UBPcZBh9A0SQBZG, "expiration" = 1791031743 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = 9UBPcZBh9A0SQBZG or "expiration" <= 1790945343)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = 9UBPcZBh9A0SQBZG, \"expiration\" = 1791031743 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = 9UBPcZBh9A0SQBZG or \"expiration\" <= 1790945343)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:20:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = eOU4n2Iy98hgV00a, "expiration" = 1791031804 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = eOU4n2Iy98hgV00a or "expiration" <= 1790945404)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = eOU4n2Iy98hgV00a, \"expiration\" = 1791031804 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = eOU4n2Iy98hgV00a or \"expiration\" <= 1790945404)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:21:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = OxQIaGeUmq9cQbhH, "expiration" = 1791031863 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = OxQIaGeUmq9cQbhH or "expiration" <= 1790945463)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = OxQIaGeUmq9cQbhH, \"expiration\" = 1791031863 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = OxQIaGeUmq9cQbhH or \"expiration\" <= 1790945463)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:22:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = g5FSjURYTnb4qjRA, "expiration" = 1791031923 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = g5FSjURYTnb4qjRA or "expiration" <= 1790945523)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = g5FSjURYTnb4qjRA, \"expiration\" = 1791031923 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = g5FSjURYTnb4qjRA or \"expiration\" <= 1790945523)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:23:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = xEe0Ns8LaPcRKV6v, "expiration" = 1791031984 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = xEe0Ns8LaPcRKV6v or "expiration" <= 1790945584)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = xEe0Ns8LaPcRKV6v, \"expiration\" = 1791031984 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = xEe0Ns8LaPcRKV6v or \"expiration\" <= 1790945584)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:24:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = muxQAmgWAeG24BNI, "expiration" = 1791032043 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = muxQAmgWAeG24BNI or "expiration" <= 1790945643)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = muxQAmgWAeG24BNI, \"expiration\" = 1791032043 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = muxQAmgWAeG24BNI or \"expiration\" <= 1790945643)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:25:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = aHoKpjaKDV0VUmPh, "expiration" = 1791032103 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = aHoKpjaKDV0VUmPh or "expiration" <= 1790945703)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = aHoKpjaKDV0VUmPh, \"expiration\" = 1791032103 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = aHoKpjaKDV0VUmPh or \"expiration\" <= 1790945703)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:26:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = IlNwYQ1WG4UUK1pH, "expiration" = 1791032163 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = IlNwYQ1WG4UUK1pH or "expiration" <= 1790945763)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = IlNwYQ1WG4UUK1pH, \"expiration\" = 1791032163 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = IlNwYQ1WG4UUK1pH or \"expiration\" <= 1790945763)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:27:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = m61xHF0ZWTvhkfw4, "expiration" = 1791032223 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = m61xHF0ZWTvhkfw4 or "expiration" <= 1790945823)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = m61xHF0ZWTvhkfw4, \"expiration\" = 1791032223 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = m61xHF0ZWTvhkfw4 or \"expiration\" <= 1790945823)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:28:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = ItNBkReOap0AHtMu, "expiration" = 1791032283 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = ItNBkReOap0AHtMu or "expiration" <= 1790945883)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = ItNBkReOap0AHtMu, \"expiration\" = 1791032283 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = ItNBkReOap0AHtMu or \"expiration\" <= 1790945883)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:29:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = LYHCAqlMXvnbDZLA, "expiration" = 1791032343 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = LYHCAqlMXvnbDZLA or "expiration" <= 1790945943)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = LYHCAqlMXvnbDZLA, \"expiration\" = 1791032343 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = LYHCAqlMXvnbDZLA or \"expiration\" <= 1790945943)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:30:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = sJIUmPyRV87REQ9f, "expiration" = 1791032404 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = sJIUmPyRV87REQ9f or "expiration" <= 1790946004)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = sJIUmPyRV87REQ9f, \"expiration\" = 1791032404 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = sJIUmPyRV87REQ9f or \"expiration\" <= 1790946004)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:31:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = 8HNNiWZVwuK2FrWa, "expiration" = 1791032464 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = 8HNNiWZVwuK2FrWa or "expiration" <= 1790946064)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = 8HNNiWZVwuK2FrWa, \"expiration\" = 1791032464 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = 8HNNiWZVwuK2FrWa or \"expiration\" <= 1790946064)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:32:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = a5HCvxbQuI5s04oJ, "expiration" = 1791032524 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = a5HCvxbQuI5s04oJ or "expiration" <= 1790946124)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = a5HCvxbQuI5s04oJ, \"expiration\" = 1791032524 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = a5HCvxbQuI5s04oJ or \"expiration\" <= 1790946124)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:33:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = XUFTu6ePX8wT1jf2, "expiration" = 1791032584 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = XUFTu6ePX8wT1jf2 or "expiration" <= 1790946184)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = XUFTu6ePX8wT1jf2, \"expiration\" = 1791032584 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = XUFTu6ePX8wT1jf2 or \"expiration\" <= 1790946184)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:34:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = JRGsg9DeRy1mR0Us, "expiration" = 1791032644 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = JRGsg9DeRy1mR0Us or "expiration" <= 1790946244)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = JRGsg9DeRy1mR0Us, \"expiration\" = 1791032644 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = JRGsg9DeRy1mR0Us or \"expiration\" <= 1790946244)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:35:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = X0SoyVYGWV2rX4vY, "expiration" = 1791032704 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = X0SoyVYGWV2rX4vY or "expiration" <= 1790946304)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = X0SoyVYGWV2rX4vY, \"expiration\" = 1791032704 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = X0SoyVYGWV2rX4vY or \"expiration\" <= 1790946304)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:36:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = JE4GhP21Kwtd29kW, "expiration" = 1791032764 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = JE4GhP21Kwtd29kW or "expiration" <= 1790946364)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = JE4GhP21Kwtd29kW, \"expiration\" = 1791032764 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = JE4GhP21Kwtd29kW or \"expiration\" <= 1790946364)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:37:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = YnPwLwbFpP5WjjYT, "expiration" = 1791032823 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = YnPwLwbFpP5WjjYT or "expiration" <= 1790946423)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = YnPwLwbFpP5WjjYT, \"expiration\" = 1791032823 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = YnPwLwbFpP5WjjYT or \"expiration\" <= 1790946423)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:38:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = B1bfZRL5KENf7ilp, "expiration" = 1791032883 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = B1bfZRL5KENf7ilp or "expiration" <= 1790946483)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = B1bfZRL5KENf7ilp, \"expiration\" = 1791032883 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = B1bfZRL5KENf7ilp or \"expiration\" <= 1790946483)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:39:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = 5SsVxqeTxkUVpMDj, "expiration" = 1791032944 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = 5SsVxqeTxkUVpMDj or "expiration" <= 1790946544)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = 5SsVxqeTxkUVpMDj, \"expiration\" = 1791032944 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = 5SsVxqeTxkUVpMDj or \"expiration\" <= 1790946544)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:40:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = ghsvLdoOPIMRyWxa, "expiration" = 1791033004 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = ghsvLdoOPIMRyWxa or "expiration" <= 1790946604)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = ghsvLdoOPIMRyWxa, \"expiration\" = 1791033004 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = ghsvLdoOPIMRyWxa or \"expiration\" <= 1790946604)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:41:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = ZqOjXwX4y6QCcIim, "expiration" = 1791033063 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = ZqOjXwX4y6QCcIim or "expiration" <= 1790946663)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = ZqOjXwX4y6QCcIim, \"expiration\" = 1791033063 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = ZqOjXwX4y6QCcIim or \"expiration\" <= 1790946663)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:42:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = zFXXXFzzKk9VdOOq, "expiration" = 1791033123 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = zFXXXFzzKk9VdOOq or "expiration" <= 1790946723)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = zFXXXFzzKk9VdOOq, \"expiration\" = 1791033123 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = zFXXXFzzKk9VdOOq or \"expiration\" <= 1790946723)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:43:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = cE5uY552vMm43Qpn, "expiration" = 1791033183 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = cE5uY552vMm43Qpn or "expiration" <= 1790946783)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = cE5uY552vMm43Qpn, \"expiration\" = 1791033183 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = cE5uY552vMm43Qpn or \"expiration\" <= 1790946783)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:44:02] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = oH6ZTMAi6RrsypEu, "expiration" = 1791033242 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = oH6ZTMAi6RrsypEu or "expiration" <= 1790946842)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = oH6ZTMAi6RrsypEu, \"expiration\" = 1791033242 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = oH6ZTMAi6RrsypEu or \"expiration\" <= 1790946842)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:45:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = lg5aXg39WyGyTkvA, "expiration" = 1791033304 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = lg5aXg39WyGyTkvA or "expiration" <= 1790946904)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = lg5aXg39WyGyTkvA, \"expiration\" = 1791033304 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = lg5aXg39WyGyTkvA or \"expiration\" <= 1790946904)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:46:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = FsXo4lKYbX6eIWXH, "expiration" = 1791033363 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = FsXo4lKYbX6eIWXH or "expiration" <= 1790946963)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = FsXo4lKYbX6eIWXH, \"expiration\" = 1791033363 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = FsXo4lKYbX6eIWXH or \"expiration\" <= 1790946963)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:47:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = m7U0Btrgvrxf92FF, "expiration" = 1791033423 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = m7U0Btrgvrxf92FF or "expiration" <= 1790947023)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = m7U0Btrgvrxf92FF, \"expiration\" = 1791033423 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = m7U0Btrgvrxf92FF or \"expiration\" <= 1790947023)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:48:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = RlSA8BttJdTJ87T2, "expiration" = 1791033483 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = RlSA8BttJdTJ87T2 or "expiration" <= 1790947083)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = RlSA8BttJdTJ87T2, \"expiration\" = 1791033483 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = RlSA8BttJdTJ87T2 or \"expiration\" <= 1790947083)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:49:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = LGRb7DeSipq02Qy9, "expiration" = 1791033544 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = LGRb7DeSipq02Qy9 or "expiration" <= 1790947144)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = LGRb7DeSipq02Qy9, \"expiration\" = 1791033544 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = LGRb7DeSipq02Qy9 or \"expiration\" <= 1790947144)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:50:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = frmwClP1p7TJCdPV, "expiration" = 1791033604 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = frmwClP1p7TJCdPV or "expiration" <= 1790947204)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = frmwClP1p7TJCdPV, \"expiration\" = 1791033604 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = frmwClP1p7TJCdPV or \"expiration\" <= 1790947204)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:51:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = p2nBANl6CQzesAv5, "expiration" = 1791033663 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = p2nBANl6CQzesAv5 or "expiration" <= 1790947263)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = p2nBANl6CQzesAv5, \"expiration\" = 1791033663 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = p2nBANl6CQzesAv5 or \"expiration\" <= 1790947263)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:52:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = 0mcPn1YxlXILMP1v, "expiration" = 1791033723 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = 0mcPn1YxlXILMP1v or "expiration" <= 1790947323)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = 0mcPn1YxlXILMP1v, \"expiration\" = 1791033723 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = 0mcPn1YxlXILMP1v or \"expiration\" <= 1790947323)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:53:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = 0Y0CiCHC1uo8jJp1, "expiration" = 1791033784 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = 0Y0CiCHC1uo8jJp1 or "expiration" <= 1790947384)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = 0Y0CiCHC1uo8jJp1, \"expiration\" = 1791033784 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = 0Y0CiCHC1uo8jJp1 or \"expiration\" <= 1790947384)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:54:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = sra2ZipvtvxBDsTU, "expiration" = 1791033843 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = sra2ZipvtvxBDsTU or "expiration" <= 1790947443)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = sra2ZipvtvxBDsTU, \"expiration\" = 1791033843 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = sra2ZipvtvxBDsTU or \"expiration\" <= 1790947443)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:55:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = Fvpa2hJv1B0qxajv, "expiration" = 1791033904 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = Fvpa2hJv1B0qxajv or "expiration" <= 1790947504)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = Fvpa2hJv1B0qxajv, \"expiration\" = 1791033904 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = Fvpa2hJv1B0qxajv or \"expiration\" <= 1790947504)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:56:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = GeCzW7McyZEKkRjS, "expiration" = 1791033963 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = GeCzW7McyZEKkRjS or "expiration" <= 1790947563)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = GeCzW7McyZEKkRjS, \"expiration\" = 1791033963 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = GeCzW7McyZEKkRjS or \"expiration\" <= 1790947563)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:57:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = zX2ltYqFlHNV0CIx, "expiration" = 1791034024 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = zX2ltYqFlHNV0CIx or "expiration" <= 1790947624)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = zX2ltYqFlHNV0CIx, \"expiration\" = 1791034024 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = zX2ltYqFlHNV0CIx or \"expiration\" <= 1790947624)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:58:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = 6OFUFcN9bki55FZ3, "expiration" = 1791034084 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = 6OFUFcN9bki55FZ3 or "expiration" <= 1790947684)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = 6OFUFcN9bki55FZ3, \"expiration\" = 1791034084 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = 6OFUFcN9bki55FZ3 or \"expiration\" <= 1790947684)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 18:59:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = qmaW89ax2QV39xX6, "expiration" = 1791034143 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = qmaW89ax2QV39xX6 or "expiration" <= 1790947743)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = qmaW89ax2QV39xX6, \"expiration\" = 1791034143 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = qmaW89ax2QV39xX6 or \"expiration\" <= 1790947743)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:00:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = KGpfV5e62BVrWn92, "expiration" = 1791034204 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = KGpfV5e62BVrWn92 or "expiration" <= 1790947804)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = KGpfV5e62BVrWn92, \"expiration\" = 1791034204 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = KGpfV5e62BVrWn92 or \"expiration\" <= 1790947804)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:01:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = sUUCgzrPqsHSqS9u, "expiration" = 1791034263 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = sUUCgzrPqsHSqS9u or "expiration" <= 1790947863)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = sUUCgzrPqsHSqS9u, \"expiration\" = 1791034263 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = sUUCgzrPqsHSqS9u or \"expiration\" <= 1790947863)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:02:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = 5QDJRyRKdFazJxv1, "expiration" = 1791034324 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = 5QDJRyRKdFazJxv1 or "expiration" <= 1790947924)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = 5QDJRyRKdFazJxv1, \"expiration\" = 1791034324 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = 5QDJRyRKdFazJxv1 or \"expiration\" <= 1790947924)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:03:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = JnKw6NFiBO84fM0I, "expiration" = 1791034383 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = JnKw6NFiBO84fM0I or "expiration" <= 1790947983)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = JnKw6NFiBO84fM0I, \"expiration\" = 1791034383 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = JnKw6NFiBO84fM0I or \"expiration\" <= 1790947983)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: FATAL:  the database system is shutting down at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:04:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = udOGMkSq7uVDKWLC, "expiration" = 1791034443 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = udOGMkSq7uVDKWLC or "expiration" <= 1790948043)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = udOGMkSq7uVDKWLC, \"expiration\" = 1791034443 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = udOGMkSq7uVDKWLC or \"expiration\" <= 1790948043)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:05:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = b51qBFaOJsdCmpYY, "expiration" = 1791034503 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = b51qBFaOJsdCmpYY or "expiration" <= 1790948103)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = b51qBFaOJsdCmpYY, \"expiration\" = 1791034503 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = b51qBFaOJsdCmpYY or \"expiration\" <= 1790948103)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:06:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = AipVW6hjyuE8FOiX, "expiration" = 1791034563 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = AipVW6hjyuE8FOiX or "expiration" <= 1790948163)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = AipVW6hjyuE8FOiX, \"expiration\" = 1791034563 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = AipVW6hjyuE8FOiX or \"expiration\" <= 1790948163)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:06:32] local.ERROR: Error retrieving public theme color palette {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"theme_color_palettes\" where \"is_active\" = 1 order by \"id\" asc limit 1)"} 
[2026-10-02 19:06:34] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cache" where "key" in (ims_academy_cache_9639e3466a64a50869d6bb299c85027f18f58c4e)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_9639e3466a64a50869d6bb299c85027f18f58c4e)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\Repository->get()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(300): Illuminate\\Cache\\RateLimiter->{closure:Illuminate\\Cache\\RateLimiter::attempts():206}()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\RateLimiter->withoutSerializationOrCompression()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(129): Illuminate\\Cache\\RateLimiter->attempts()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(157): Illuminate\\Cache\\RateLimiter->tooManyAttempts()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(93): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequest()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle()
#16 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#18 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#27 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#51 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#52 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\Repository->get()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(300): Illuminate\\Cache\\RateLimiter->{closure:Illuminate\\Cache\\RateLimiter::attempts():206}()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\RateLimiter->withoutSerializationOrCompression()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(129): Illuminate\\Cache\\RateLimiter->attempts()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(157): Illuminate\\Cache\\RateLimiter->tooManyAttempts()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(93): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequest()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle()
#26 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#28 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#37 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#52 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#53 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#54 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#55 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#56 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#57 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#58 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#59 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#60 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#61 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#62 {main}
"} 
[2026-10-02 19:06:35] local.ERROR: Error retrieving public settings {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"is_public\" = 1 and \"settings\".\"deleted_at\" is null)"} 
[2026-10-02 19:06:35] local.ERROR: Error retrieving public theme color palette {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"theme_color_palettes\" where \"is_active\" = 1 order by \"id\" asc limit 1)"} 
[2026-10-02 19:06:36] local.ERROR: Error retrieving public theme color palette {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"theme_color_palettes\" where \"is_active\" = 1 order by \"id\" asc limit 1)"} 
[2026-10-02 19:06:38] local.ERROR: Error retrieving public theme color palette {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"theme_color_palettes\" where \"is_active\" = 1 order by \"id\" asc limit 1)"} 
[2026-10-02 19:06:38] local.ERROR: Error retrieving public settings {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"is_public\" = 1 and \"settings\".\"deleted_at\" is null)"} 
[2026-10-02 19:06:41] local.ERROR: Error retrieving public settings {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"is_public\" = 1 and \"settings\".\"deleted_at\" is null)"} 
[2026-10-02 19:06:42] local.ERROR: Error retrieving public theme color palette {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"theme_color_palettes\" where \"is_active\" = 1 order by \"id\" asc limit 1)"} 
[2026-10-02 19:06:43] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cache" where "key" in (ims_academy_cache_efc853d311ec84143e53fa057fce9da6e15a8399)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_efc853d311ec84143e53fa057fce9da6e15a8399)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\Repository->get()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(300): Illuminate\\Cache\\RateLimiter->{closure:Illuminate\\Cache\\RateLimiter::attempts():206}()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\RateLimiter->withoutSerializationOrCompression()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(129): Illuminate\\Cache\\RateLimiter->attempts()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(157): Illuminate\\Cache\\RateLimiter->tooManyAttempts()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(93): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequest()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle()
#16 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#18 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#27 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#51 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#52 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\Repository->get()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(300): Illuminate\\Cache\\RateLimiter->{closure:Illuminate\\Cache\\RateLimiter::attempts():206}()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\RateLimiter->withoutSerializationOrCompression()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(129): Illuminate\\Cache\\RateLimiter->attempts()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(157): Illuminate\\Cache\\RateLimiter->tooManyAttempts()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(93): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequest()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle()
#26 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#28 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#37 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#52 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#53 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#54 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#55 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#56 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#57 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#58 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#59 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#60 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#61 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#62 {main}
"} 
[2026-10-02 19:06:44] local.ERROR: Error retrieving public settings {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"is_public\" = 1 and \"settings\".\"deleted_at\" is null)"} 
[2026-10-02 19:06:44] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cache" where "key" in (ims_academy_cache_514381bb55c30dd25075d12c00b800b1)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_514381bb55c30dd25075d12c00b800b1)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\Repository->get()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(300): Illuminate\\Cache\\RateLimiter->{closure:Illuminate\\Cache\\RateLimiter::attempts():206}()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\RateLimiter->withoutSerializationOrCompression()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(129): Illuminate\\Cache\\RateLimiter->attempts()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(157): Illuminate\\Cache\\RateLimiter->tooManyAttempts()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(129): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequest()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(90): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequestUsingNamedLimiter()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle()
#17 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#19 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#28 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#52 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#53 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\Repository->get()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(300): Illuminate\\Cache\\RateLimiter->{closure:Illuminate\\Cache\\RateLimiter::attempts():206}()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\RateLimiter->withoutSerializationOrCompression()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(129): Illuminate\\Cache\\RateLimiter->attempts()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(157): Illuminate\\Cache\\RateLimiter->tooManyAttempts()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(129): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequest()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(90): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequestUsingNamedLimiter()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle()
#27 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#29 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#38 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#52 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#53 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#54 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#55 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#56 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#57 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#58 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#59 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#60 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#61 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#62 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#63 {main}
"} 
[2026-10-02 19:06:44] local.ERROR: Error retrieving public theme color palette {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"theme_color_palettes\" where \"is_active\" = 1 order by \"id\" asc limit 1)"} 
[2026-10-02 19:06:45] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "about_us" order by "id" desc limit 1) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"about_us\" order by \"id\" desc limit 1) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(902): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(884): Illuminate\\Database\\Eloquent\\Builder->getModels()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php(366): Illuminate\\Database\\Eloquent\\Builder->get()
#9 /var/www/html/api_loyala_backend/app/Http/Controllers/Api/V1/PublicCmsController.php(24): Illuminate\\Database\\Eloquent\\Builder->first()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): App\\Http\\Controllers\\Api\\V1\\PublicCmsController->aboutUs()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\\Routing\\Route->runController()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\\Routing\\Route->run()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Router->{closure:Illuminate\\Routing\\Router::runRouteWithinStack():821}()
#15 /var/www/html/api_loyala_backend/app/Http/Middleware/GzipMiddleware.php(21): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\GzipMiddleware->handle()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#19 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#21 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#30 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#52 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#53 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#54 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#55 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(902): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(884): Illuminate\\Database\\Eloquent\\Builder->getModels()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php(366): Illuminate\\Database\\Eloquent\\Builder->get()
#19 /var/www/html/api_loyala_backend/app/Http/Controllers/Api/V1/PublicCmsController.php(24): Illuminate\\Database\\Eloquent\\Builder->first()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): App\\Http\\Controllers\\Api\\V1\\PublicCmsController->aboutUs()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\\Routing\\Route->runController()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\\Routing\\Route->run()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Router->{closure:Illuminate\\Routing\\Router::runRouteWithinStack():821}()
#25 /var/www/html/api_loyala_backend/app/Http/Middleware/GzipMiddleware.php(21): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\GzipMiddleware->handle()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#29 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#31 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#40 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#52 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#53 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#54 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#55 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#56 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#57 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#58 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#59 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#60 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#61 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#62 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#63 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#64 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#65 {main}
"} 
[2026-10-02 19:06:45] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "alumni_pages" order by "id" desc limit 1) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"alumni_pages\" order by \"id\" desc limit 1) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(902): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(884): Illuminate\\Database\\Eloquent\\Builder->getModels()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php(366): Illuminate\\Database\\Eloquent\\Builder->get()
#9 /var/www/html/api_loyala_backend/app/Http/Controllers/Api/V1/PublicCmsController.php(84): Illuminate\\Database\\Eloquent\\Builder->first()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): App\\Http\\Controllers\\Api\\V1\\PublicCmsController->alumniPage()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\\Routing\\Route->runController()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\\Routing\\Route->run()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Router->{closure:Illuminate\\Routing\\Router::runRouteWithinStack():821}()
#15 /var/www/html/api_loyala_backend/app/Http/Middleware/GzipMiddleware.php(21): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\GzipMiddleware->handle()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#19 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#21 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#30 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#52 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#53 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#54 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#55 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(902): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(884): Illuminate\\Database\\Eloquent\\Builder->getModels()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php(366): Illuminate\\Database\\Eloquent\\Builder->get()
#19 /var/www/html/api_loyala_backend/app/Http/Controllers/Api/V1/PublicCmsController.php(84): Illuminate\\Database\\Eloquent\\Builder->first()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): App\\Http\\Controllers\\Api\\V1\\PublicCmsController->alumniPage()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\\Routing\\Route->runController()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\\Routing\\Route->run()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Router->{closure:Illuminate\\Routing\\Router::runRouteWithinStack():821}()
#25 /var/www/html/api_loyala_backend/app/Http/Middleware/GzipMiddleware.php(21): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\GzipMiddleware->handle()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#29 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#31 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#40 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#52 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#53 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#54 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#55 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#56 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#57 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#58 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#59 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#60 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#61 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#62 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#63 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#64 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#65 {main}
"} 
[2026-10-02 19:06:45] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cms_news_articles" where "status" = published order by "published_date" desc, "id" desc) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cms_news_articles\" where \"status\" = published order by \"published_date\" desc, \"id\" desc) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(902): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(884): Illuminate\\Database\\Eloquent\\Builder->getModels()
#8 /var/www/html/api_loyala_backend/app/Http/Controllers/Api/V1/PublicCmsController.php(71): Illuminate\\Database\\Eloquent\\Builder->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): App\\Http\\Controllers\\Api\\V1\\PublicCmsController->news()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\\Routing\\Route->runController()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\\Routing\\Route->run()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Router->{closure:Illuminate\\Routing\\Router::runRouteWithinStack():821}()
#14 /var/www/html/api_loyala_backend/app/Http/Middleware/GzipMiddleware.php(21): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\GzipMiddleware->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#18 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#20 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#29 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#52 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#53 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#54 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(902): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(884): Illuminate\\Database\\Eloquent\\Builder->getModels()
#18 /var/www/html/api_loyala_backend/app/Http/Controllers/Api/V1/PublicCmsController.php(71): Illuminate\\Database\\Eloquent\\Builder->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): App\\Http\\Controllers\\Api\\V1\\PublicCmsController->news()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\\Routing\\Route->runController()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\\Routing\\Route->run()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Router->{closure:Illuminate\\Routing\\Router::runRouteWithinStack():821}()
#24 /var/www/html/api_loyala_backend/app/Http/Middleware/GzipMiddleware.php(21): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\GzipMiddleware->handle()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#28 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#30 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#39 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#52 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#53 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#54 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#55 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#56 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#57 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#58 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#59 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#60 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#61 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#62 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#63 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#64 {main}
"} 
[2026-10-02 19:06:46] local.ERROR: Error retrieving public settings {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"is_public\" = 1 and \"settings\".\"deleted_at\" is null)"} 
[2026-10-02 19:06:46] local.ERROR: Error retrieving public settings {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"is_public\" = 1 and \"settings\".\"deleted_at\" is null)"} 
[2026-10-02 19:06:46] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "hero_pages" order by "id" desc limit 1) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"hero_pages\" order by \"id\" desc limit 1) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(902): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(884): Illuminate\\Database\\Eloquent\\Builder->getModels()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php(366): Illuminate\\Database\\Eloquent\\Builder->get()
#9 /var/www/html/api_loyala_backend/app/Http/Controllers/Api/V1/PublicCmsController.php(39): Illuminate\\Database\\Eloquent\\Builder->first()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): App\\Http\\Controllers\\Api\\V1\\PublicCmsController->heroPage()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\\Routing\\Route->runController()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\\Routing\\Route->run()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Router->{closure:Illuminate\\Routing\\Router::runRouteWithinStack():821}()
#15 /var/www/html/api_loyala_backend/app/Http/Middleware/GzipMiddleware.php(21): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\GzipMiddleware->handle()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#19 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#21 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#30 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#52 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#53 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#54 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#55 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(902): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(884): Illuminate\\Database\\Eloquent\\Builder->getModels()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php(366): Illuminate\\Database\\Eloquent\\Builder->get()
#19 /var/www/html/api_loyala_backend/app/Http/Controllers/Api/V1/PublicCmsController.php(39): Illuminate\\Database\\Eloquent\\Builder->first()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): App\\Http\\Controllers\\Api\\V1\\PublicCmsController->heroPage()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\\Routing\\Route->runController()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\\Routing\\Route->run()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Router->{closure:Illuminate\\Routing\\Router::runRouteWithinStack():821}()
#25 /var/www/html/api_loyala_backend/app/Http/Middleware/GzipMiddleware.php(21): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\GzipMiddleware->handle()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#29 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#31 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#40 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#52 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#53 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#54 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#55 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#56 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#57 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#58 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#59 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#60 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#61 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#62 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#63 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#64 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#65 {main}
"} 
[2026-10-02 19:06:46] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cache" where "key" in (ims_academy_cache_c47901558f6d2a80e4b65df5b835a056b4703b35)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_c47901558f6d2a80e4b65df5b835a056b4703b35)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\Repository->get()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(300): Illuminate\\Cache\\RateLimiter->{closure:Illuminate\\Cache\\RateLimiter::attempts():206}()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\RateLimiter->withoutSerializationOrCompression()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(129): Illuminate\\Cache\\RateLimiter->attempts()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(157): Illuminate\\Cache\\RateLimiter->tooManyAttempts()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(93): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequest()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle()
#16 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#18 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#27 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#51 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#52 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\Repository->get()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(300): Illuminate\\Cache\\RateLimiter->{closure:Illuminate\\Cache\\RateLimiter::attempts():206}()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\RateLimiter->withoutSerializationOrCompression()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(129): Illuminate\\Cache\\RateLimiter->attempts()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(157): Illuminate\\Cache\\RateLimiter->tooManyAttempts()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(93): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequest()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle()
#26 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#28 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#37 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#52 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#53 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#54 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#55 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#56 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#57 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#58 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#59 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#60 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#61 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#62 {main}
"} 
[2026-10-02 19:06:46] local.ERROR: Error retrieving public settings {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"is_public\" = 1 and \"settings\".\"deleted_at\" is null)"} 
[2026-10-02 19:06:47] local.ERROR: Error retrieving public theme color palette {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"theme_color_palettes\" where \"is_active\" = 1 order by \"id\" asc limit 1)"} 
[2026-10-02 19:06:47] local.ERROR: Error retrieving public settings {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"is_public\" = 1 and \"settings\".\"deleted_at\" is null)"} 
[2026-10-02 19:06:49] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cache" where "key" in (ims_academy_cache_688148c94f7053c497c0d22a02048cf5)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_688148c94f7053c497c0d22a02048cf5)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\Repository->get()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(300): Illuminate\\Cache\\RateLimiter->{closure:Illuminate\\Cache\\RateLimiter::attempts():206}()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\RateLimiter->withoutSerializationOrCompression()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(129): Illuminate\\Cache\\RateLimiter->attempts()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(157): Illuminate\\Cache\\RateLimiter->tooManyAttempts()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(129): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequest()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(90): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequestUsingNamedLimiter()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle()
#17 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#19 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#28 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#52 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#53 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\Repository->get()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(300): Illuminate\\Cache\\RateLimiter->{closure:Illuminate\\Cache\\RateLimiter::attempts():206}()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\RateLimiter->withoutSerializationOrCompression()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(129): Illuminate\\Cache\\RateLimiter->attempts()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(157): Illuminate\\Cache\\RateLimiter->tooManyAttempts()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(129): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequest()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(90): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequestUsingNamedLimiter()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle()
#27 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#29 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#38 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#52 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#53 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#54 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#55 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#56 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#57 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#58 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#59 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#60 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#61 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#62 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#63 {main}
"} 
[2026-10-02 19:06:50] local.ERROR: Error retrieving public settings {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"is_public\" = 1 and \"settings\".\"deleted_at\" is null)"} 
[2026-10-02 19:07:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = awkUdgr5rJfZSEqC, "expiration" = 1791034623 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = awkUdgr5rJfZSEqC or "expiration" <= 1790948223)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = awkUdgr5rJfZSEqC, \"expiration\" = 1791034623 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = awkUdgr5rJfZSEqC or \"expiration\" <= 1790948223)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:07:17] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cache" where "key" in (ims_academy_cache_152695c4b34846535cbf8301aa7cef80)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_152695c4b34846535cbf8301aa7cef80)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\Repository->get()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(300): Illuminate\\Cache\\RateLimiter->{closure:Illuminate\\Cache\\RateLimiter::attempts():206}()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\RateLimiter->withoutSerializationOrCompression()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(129): Illuminate\\Cache\\RateLimiter->attempts()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(157): Illuminate\\Cache\\RateLimiter->tooManyAttempts()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(129): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequest()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(90): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequestUsingNamedLimiter()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle()
#17 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#19 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#28 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#52 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#53 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\Repository->get()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(300): Illuminate\\Cache\\RateLimiter->{closure:Illuminate\\Cache\\RateLimiter::attempts():206}()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\RateLimiter->withoutSerializationOrCompression()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(129): Illuminate\\Cache\\RateLimiter->attempts()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(157): Illuminate\\Cache\\RateLimiter->tooManyAttempts()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(129): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequest()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(90): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequestUsingNamedLimiter()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle()
#27 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#29 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#38 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#52 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#53 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#54 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#55 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#56 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#57 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#58 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#59 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#60 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#61 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#62 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#63 {main}
"} 
[2026-10-02 19:07:18] local.ERROR: Error retrieving public settings {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"is_public\" = 1 and \"settings\".\"deleted_at\" is null)"} 
[2026-10-02 19:08:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = MPDxG5dH4tDXeAtv, "expiration" = 1791034683 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = MPDxG5dH4tDXeAtv or "expiration" <= 1790948283)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = MPDxG5dH4tDXeAtv, \"expiration\" = 1791034683 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = MPDxG5dH4tDXeAtv or \"expiration\" <= 1790948283)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:09:05] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = 1IAjY4hfC7jyQFgT, "expiration" = 1791034744 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = 1IAjY4hfC7jyQFgT or "expiration" <= 1790948344)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = 1IAjY4hfC7jyQFgT, \"expiration\" = 1791034744 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = 1IAjY4hfC7jyQFgT or \"expiration\" <= 1790948344)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:10:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = XBoA9t5MfB0ixZgm, "expiration" = 1791034804 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = XBoA9t5MfB0ixZgm or "expiration" <= 1790948404)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = XBoA9t5MfB0ixZgm, \"expiration\" = 1791034804 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = XBoA9t5MfB0ixZgm or \"expiration\" <= 1790948404)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:11:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = oCmZB0HhlnQ79nmm, "expiration" = 1791034863 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = oCmZB0HhlnQ79nmm or "expiration" <= 1790948463)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = oCmZB0HhlnQ79nmm, \"expiration\" = 1791034863 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = oCmZB0HhlnQ79nmm or \"expiration\" <= 1790948463)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:12:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = yyeY0jN3R8wRrMJg, "expiration" = 1791034924 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = yyeY0jN3R8wRrMJg or "expiration" <= 1790948524)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = yyeY0jN3R8wRrMJg, \"expiration\" = 1791034924 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = yyeY0jN3R8wRrMJg or \"expiration\" <= 1790948524)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:12:05] local.ERROR: Error retrieving public settings {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"is_public\" = 1 and \"settings\".\"deleted_at\" is null)"} 
[2026-10-02 19:12:33] local.ERROR: Error retrieving public theme color palette {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"theme_color_palettes\" where \"is_active\" = 1 order by \"id\" asc limit 1)"} 
[2026-10-02 19:12:34] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cache" where "key" in (ims_academy_cache_c843ba772b053efcced449604eb60f710fd63ed1)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_c843ba772b053efcced449604eb60f710fd63ed1)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\Repository->get()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(300): Illuminate\\Cache\\RateLimiter->{closure:Illuminate\\Cache\\RateLimiter::attempts():206}()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\RateLimiter->withoutSerializationOrCompression()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(129): Illuminate\\Cache\\RateLimiter->attempts()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(157): Illuminate\\Cache\\RateLimiter->tooManyAttempts()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(93): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequest()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle()
#16 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#18 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#27 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#51 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#52 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\Repository->get()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(300): Illuminate\\Cache\\RateLimiter->{closure:Illuminate\\Cache\\RateLimiter::attempts():206}()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\RateLimiter->withoutSerializationOrCompression()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(129): Illuminate\\Cache\\RateLimiter->attempts()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(157): Illuminate\\Cache\\RateLimiter->tooManyAttempts()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(93): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequest()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle()
#26 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#28 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#37 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#52 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#53 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#54 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#55 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#56 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#57 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#58 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#59 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#60 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#61 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#62 {main}
"} 
[2026-10-02 19:12:35] local.ERROR: Error retrieving public theme color palette {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"theme_color_palettes\" where \"is_active\" = 1 order by \"id\" asc limit 1)"} 
[2026-10-02 19:12:35] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cms_news_articles" where "status" = published order by "published_date" desc, "id" desc) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cms_news_articles\" where \"status\" = published order by \"published_date\" desc, \"id\" desc) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(902): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(884): Illuminate\\Database\\Eloquent\\Builder->getModels()
#8 /var/www/html/api_loyala_backend/app/Http/Controllers/Api/V1/PublicCmsController.php(71): Illuminate\\Database\\Eloquent\\Builder->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): App\\Http\\Controllers\\Api\\V1\\PublicCmsController->news()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\\Routing\\Route->runController()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\\Routing\\Route->run()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Router->{closure:Illuminate\\Routing\\Router::runRouteWithinStack():821}()
#14 /var/www/html/api_loyala_backend/app/Http/Middleware/GzipMiddleware.php(21): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\GzipMiddleware->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#18 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#20 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#29 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#52 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#53 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#54 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(902): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(884): Illuminate\\Database\\Eloquent\\Builder->getModels()
#18 /var/www/html/api_loyala_backend/app/Http/Controllers/Api/V1/PublicCmsController.php(71): Illuminate\\Database\\Eloquent\\Builder->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): App\\Http\\Controllers\\Api\\V1\\PublicCmsController->news()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\\Routing\\Route->runController()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\\Routing\\Route->run()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Router->{closure:Illuminate\\Routing\\Router::runRouteWithinStack():821}()
#24 /var/www/html/api_loyala_backend/app/Http/Middleware/GzipMiddleware.php(21): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\GzipMiddleware->handle()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#28 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#30 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#39 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#52 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#53 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#54 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#55 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#56 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#57 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#58 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#59 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#60 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#61 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#62 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#63 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#64 {main}
"} 
[2026-10-02 19:12:36] local.ERROR: Error retrieving public settings {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"is_public\" = 1 and \"settings\".\"deleted_at\" is null)"} 
[2026-10-02 19:12:36] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "about_us" order by "id" desc limit 1) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"about_us\" order by \"id\" desc limit 1) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(902): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(884): Illuminate\\Database\\Eloquent\\Builder->getModels()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php(366): Illuminate\\Database\\Eloquent\\Builder->get()
#9 /var/www/html/api_loyala_backend/app/Http/Controllers/Api/V1/PublicCmsController.php(24): Illuminate\\Database\\Eloquent\\Builder->first()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): App\\Http\\Controllers\\Api\\V1\\PublicCmsController->aboutUs()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\\Routing\\Route->runController()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\\Routing\\Route->run()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Router->{closure:Illuminate\\Routing\\Router::runRouteWithinStack():821}()
#15 /var/www/html/api_loyala_backend/app/Http/Middleware/GzipMiddleware.php(21): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\GzipMiddleware->handle()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#19 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#21 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#30 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#52 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#53 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#54 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#55 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(902): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(884): Illuminate\\Database\\Eloquent\\Builder->getModels()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php(366): Illuminate\\Database\\Eloquent\\Builder->get()
#19 /var/www/html/api_loyala_backend/app/Http/Controllers/Api/V1/PublicCmsController.php(24): Illuminate\\Database\\Eloquent\\Builder->first()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): App\\Http\\Controllers\\Api\\V1\\PublicCmsController->aboutUs()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\\Routing\\Route->runController()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\\Routing\\Route->run()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Router->{closure:Illuminate\\Routing\\Router::runRouteWithinStack():821}()
#25 /var/www/html/api_loyala_backend/app/Http/Middleware/GzipMiddleware.php(21): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\GzipMiddleware->handle()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#29 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#31 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#40 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#52 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#53 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#54 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#55 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#56 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#57 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#58 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#59 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#60 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#61 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#62 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#63 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#64 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#65 {main}
"} 
[2026-10-02 19:12:36] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "alumni_pages" order by "id" desc limit 1) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"alumni_pages\" order by \"id\" desc limit 1) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(902): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(884): Illuminate\\Database\\Eloquent\\Builder->getModels()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php(366): Illuminate\\Database\\Eloquent\\Builder->get()
#9 /var/www/html/api_loyala_backend/app/Http/Controllers/Api/V1/PublicCmsController.php(84): Illuminate\\Database\\Eloquent\\Builder->first()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): App\\Http\\Controllers\\Api\\V1\\PublicCmsController->alumniPage()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\\Routing\\Route->runController()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\\Routing\\Route->run()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Router->{closure:Illuminate\\Routing\\Router::runRouteWithinStack():821}()
#15 /var/www/html/api_loyala_backend/app/Http/Middleware/GzipMiddleware.php(21): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\GzipMiddleware->handle()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#19 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#21 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#30 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#52 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#53 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#54 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#55 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(902): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(884): Illuminate\\Database\\Eloquent\\Builder->getModels()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php(366): Illuminate\\Database\\Eloquent\\Builder->get()
#19 /var/www/html/api_loyala_backend/app/Http/Controllers/Api/V1/PublicCmsController.php(84): Illuminate\\Database\\Eloquent\\Builder->first()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): App\\Http\\Controllers\\Api\\V1\\PublicCmsController->alumniPage()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\\Routing\\Route->runController()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\\Routing\\Route->run()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Router->{closure:Illuminate\\Routing\\Router::runRouteWithinStack():821}()
#25 /var/www/html/api_loyala_backend/app/Http/Middleware/GzipMiddleware.php(21): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\GzipMiddleware->handle()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#29 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#31 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#40 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#52 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#53 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#54 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#55 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#56 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#57 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#58 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#59 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#60 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#61 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#62 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#63 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#64 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#65 {main}
"} 
[2026-10-02 19:12:36] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "hero_pages" order by "id" desc limit 1) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"hero_pages\" order by \"id\" desc limit 1) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(902): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(884): Illuminate\\Database\\Eloquent\\Builder->getModels()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php(366): Illuminate\\Database\\Eloquent\\Builder->get()
#9 /var/www/html/api_loyala_backend/app/Http/Controllers/Api/V1/PublicCmsController.php(39): Illuminate\\Database\\Eloquent\\Builder->first()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): App\\Http\\Controllers\\Api\\V1\\PublicCmsController->heroPage()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\\Routing\\Route->runController()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\\Routing\\Route->run()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Router->{closure:Illuminate\\Routing\\Router::runRouteWithinStack():821}()
#15 /var/www/html/api_loyala_backend/app/Http/Middleware/GzipMiddleware.php(21): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\GzipMiddleware->handle()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#19 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#21 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#30 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#52 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#53 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#54 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#55 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(902): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(884): Illuminate\\Database\\Eloquent\\Builder->getModels()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php(366): Illuminate\\Database\\Eloquent\\Builder->get()
#19 /var/www/html/api_loyala_backend/app/Http/Controllers/Api/V1/PublicCmsController.php(39): Illuminate\\Database\\Eloquent\\Builder->first()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): App\\Http\\Controllers\\Api\\V1\\PublicCmsController->heroPage()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\\Routing\\Route->runController()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\\Routing\\Route->run()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Router->{closure:Illuminate\\Routing\\Router::runRouteWithinStack():821}()
#25 /var/www/html/api_loyala_backend/app/Http/Middleware/GzipMiddleware.php(21): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\GzipMiddleware->handle()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#29 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#31 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#40 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#52 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#53 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#54 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#55 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#56 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#57 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#58 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#59 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#60 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#61 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#62 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#63 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#64 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#65 {main}
"} 
[2026-10-02 19:12:36] local.ERROR: Error retrieving public settings {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"is_public\" = 1 and \"settings\".\"deleted_at\" is null)"} 
[2026-10-02 19:12:37] local.ERROR: Error retrieving public settings {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"is_public\" = 1 and \"settings\".\"deleted_at\" is null)"} 
[2026-10-02 19:12:58] local.ERROR: Error retrieving public settings {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"is_public\" = 1 and \"settings\".\"deleted_at\" is null)"} 
[2026-10-02 19:12:59] local.ERROR: Error retrieving public settings {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"is_public\" = 1 and \"settings\".\"deleted_at\" is null)"} 
[2026-10-02 19:12:59] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cache" where "key" in (ims_academy_cache_9639e3466a64a50869d6bb299c85027f18f58c4e)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_9639e3466a64a50869d6bb299c85027f18f58c4e)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\Repository->get()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(300): Illuminate\\Cache\\RateLimiter->{closure:Illuminate\\Cache\\RateLimiter::attempts():206}()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\RateLimiter->withoutSerializationOrCompression()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(129): Illuminate\\Cache\\RateLimiter->attempts()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(157): Illuminate\\Cache\\RateLimiter->tooManyAttempts()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(93): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequest()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle()
#16 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#18 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#27 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#51 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#52 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\Repository->get()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(300): Illuminate\\Cache\\RateLimiter->{closure:Illuminate\\Cache\\RateLimiter::attempts():206}()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\RateLimiter->withoutSerializationOrCompression()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(129): Illuminate\\Cache\\RateLimiter->attempts()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(157): Illuminate\\Cache\\RateLimiter->tooManyAttempts()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(93): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequest()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle()
#26 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#28 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#37 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#52 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#53 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#54 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#55 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#56 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#57 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#58 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#59 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#60 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#61 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#62 {main}
"} 
[2026-10-02 19:13:00] local.ERROR: Error retrieving public theme color palette {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"theme_color_palettes\" where \"is_active\" = 1 order by \"id\" asc limit 1)"} 
[2026-10-02 19:13:01] local.ERROR: Error retrieving public settings {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"is_public\" = 1 and \"settings\".\"deleted_at\" is null)"} 
[2026-10-02 19:13:02] local.ERROR: Error retrieving public theme color palette {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"theme_color_palettes\" where \"is_active\" = 1 order by \"id\" asc limit 1)"} 
[2026-10-02 19:13:03] local.ERROR: Error retrieving public settings {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"is_public\" = 1 and \"settings\".\"deleted_at\" is null)"} 
[2026-10-02 19:13:05] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = GVBPZpfXhPkIIymU, "expiration" = 1791034985 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = GVBPZpfXhPkIIymU or "expiration" <= 1790948585)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = GVBPZpfXhPkIIymU, \"expiration\" = 1791034985 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = GVBPZpfXhPkIIymU or \"expiration\" <= 1790948585)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:13:07] local.ERROR: Error retrieving public settings {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"is_public\" = 1 and \"settings\".\"deleted_at\" is null)"} 
[2026-10-02 19:13:10] local.ERROR: Error retrieving public settings {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"is_public\" = 1 and \"settings\".\"deleted_at\" is null)"} 
[2026-10-02 19:13:11] local.ERROR: Error retrieving public settings {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"is_public\" = 1 and \"settings\".\"deleted_at\" is null)"} 
[2026-10-02 19:13:13] local.ERROR: Error retrieving public theme color palette {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"theme_color_palettes\" where \"is_active\" = 1 order by \"id\" asc limit 1)"} 
[2026-10-02 19:13:14] local.ERROR: Error retrieving public settings {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"is_public\" = 1 and \"settings\".\"deleted_at\" is null)"} 
[2026-10-02 19:13:14] local.ERROR: Error retrieving public theme color palette {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"theme_color_palettes\" where \"is_active\" = 1 order by \"id\" asc limit 1)"} 
[2026-10-02 19:13:16] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cache" where "key" in (ims_academy_cache_8fd0a0d4703c535df20f31e22e2bdf9d)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_8fd0a0d4703c535df20f31e22e2bdf9d)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\Repository->get()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(300): Illuminate\\Cache\\RateLimiter->{closure:Illuminate\\Cache\\RateLimiter::attempts():206}()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\RateLimiter->withoutSerializationOrCompression()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(129): Illuminate\\Cache\\RateLimiter->attempts()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(157): Illuminate\\Cache\\RateLimiter->tooManyAttempts()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(129): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequest()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(90): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequestUsingNamedLimiter()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle()
#17 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#19 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#28 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#52 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#53 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\Repository->get()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(300): Illuminate\\Cache\\RateLimiter->{closure:Illuminate\\Cache\\RateLimiter::attempts():206}()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\RateLimiter->withoutSerializationOrCompression()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(129): Illuminate\\Cache\\RateLimiter->attempts()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(157): Illuminate\\Cache\\RateLimiter->tooManyAttempts()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(129): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequest()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(90): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequestUsingNamedLimiter()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle()
#27 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#29 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#38 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#52 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#53 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#54 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#55 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#56 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#57 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#58 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#59 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#60 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#61 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#62 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#63 {main}
"} 
[2026-10-02 19:13:16] local.ERROR: Error retrieving public settings {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"is_public\" = 1 and \"settings\".\"deleted_at\" is null)"} 
[2026-10-02 19:14:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = ml761aaLBcJTZGrn, "expiration" = 1791035043 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = ml761aaLBcJTZGrn or "expiration" <= 1790948643)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = ml761aaLBcJTZGrn, \"expiration\" = 1791035043 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = ml761aaLBcJTZGrn or \"expiration\" <= 1790948643)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:15:05] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = xDsTQco1ZWbp9GvA, "expiration" = 1791035105 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = xDsTQco1ZWbp9GvA or "expiration" <= 1790948705)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = xDsTQco1ZWbp9GvA, \"expiration\" = 1791035105 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = xDsTQco1ZWbp9GvA or \"expiration\" <= 1790948705)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:16:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = cIaUPojqj41jv3GO, "expiration" = 1791035163 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = cIaUPojqj41jv3GO or "expiration" <= 1790948763)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = cIaUPojqj41jv3GO, \"expiration\" = 1791035163 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = cIaUPojqj41jv3GO or \"expiration\" <= 1790948763)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:17:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = TAFXwjEnYbCwmLy0, "expiration" = 1791035224 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = TAFXwjEnYbCwmLy0 or "expiration" <= 1790948824)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = TAFXwjEnYbCwmLy0, \"expiration\" = 1791035224 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = TAFXwjEnYbCwmLy0 or \"expiration\" <= 1790948824)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:18:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = rke6PcRT51W7cPAK, "expiration" = 1791035283 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = rke6PcRT51W7cPAK or "expiration" <= 1790948883)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = rke6PcRT51W7cPAK, \"expiration\" = 1791035283 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = rke6PcRT51W7cPAK or \"expiration\" <= 1790948883)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:18:44] local.ERROR: Error retrieving public settings {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"is_public\" = 1 and \"settings\".\"deleted_at\" is null)"} 
[2026-10-02 19:18:44] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cache" where "key" in (ims_academy_cache_5b4fd6cfa1e1dc2d53f9fb648e8fe4a3)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_5b4fd6cfa1e1dc2d53f9fb648e8fe4a3)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\Repository->get()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(300): Illuminate\\Cache\\RateLimiter->{closure:Illuminate\\Cache\\RateLimiter::attempts():206}()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\RateLimiter->withoutSerializationOrCompression()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(129): Illuminate\\Cache\\RateLimiter->attempts()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(157): Illuminate\\Cache\\RateLimiter->tooManyAttempts()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(129): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequest()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(90): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequestUsingNamedLimiter()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle()
#17 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#19 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#28 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#52 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#53 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\Repository->get()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(300): Illuminate\\Cache\\RateLimiter->{closure:Illuminate\\Cache\\RateLimiter::attempts():206}()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\RateLimiter->withoutSerializationOrCompression()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(129): Illuminate\\Cache\\RateLimiter->attempts()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(157): Illuminate\\Cache\\RateLimiter->tooManyAttempts()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(129): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequest()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(90): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequestUsingNamedLimiter()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle()
#27 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#29 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#38 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#52 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#53 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#54 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#55 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#56 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#57 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#58 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#59 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#60 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#61 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#62 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#63 {main}
"} 
[2026-10-02 19:18:44] local.ERROR: Error retrieving public settings {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"is_public\" = 1 and \"settings\".\"deleted_at\" is null)"} 
[2026-10-02 19:18:48] local.ERROR: Error retrieving public theme color palette {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"theme_color_palettes\" where \"is_active\" = 1 order by \"id\" asc limit 1)"} 
[2026-10-02 19:18:48] local.ERROR: Error retrieving public theme color palette {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"theme_color_palettes\" where \"is_active\" = 1 order by \"id\" asc limit 1)"} 
[2026-10-02 19:18:53] local.ERROR: Error retrieving public settings {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"is_public\" = 1 and \"settings\".\"deleted_at\" is null)"} 
[2026-10-02 19:18:54] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cache" where "key" in (ims_academy_cache_aa6cf9d2551ee1a4a6ee73cc7dd02190)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_aa6cf9d2551ee1a4a6ee73cc7dd02190)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\Repository->get()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(300): Illuminate\\Cache\\RateLimiter->{closure:Illuminate\\Cache\\RateLimiter::attempts():206}()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\RateLimiter->withoutSerializationOrCompression()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(129): Illuminate\\Cache\\RateLimiter->attempts()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(157): Illuminate\\Cache\\RateLimiter->tooManyAttempts()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(129): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequest()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(90): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequestUsingNamedLimiter()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle()
#17 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#19 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#28 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#52 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#53 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\Repository->get()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(300): Illuminate\\Cache\\RateLimiter->{closure:Illuminate\\Cache\\RateLimiter::attempts():206}()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\RateLimiter->withoutSerializationOrCompression()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(129): Illuminate\\Cache\\RateLimiter->attempts()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(157): Illuminate\\Cache\\RateLimiter->tooManyAttempts()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(129): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequest()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(90): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequestUsingNamedLimiter()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle()
#27 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#29 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#38 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#52 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#53 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#54 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#55 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#56 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#57 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#58 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#59 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#60 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#61 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#62 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#63 {main}
"} 
[2026-10-02 19:18:55] local.ERROR: Error retrieving public settings {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"is_public\" = 1 and \"settings\".\"deleted_at\" is null)"} 
[2026-10-02 19:19:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = rGfjKpA1miPLO50I, "expiration" = 1791035343 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = rGfjKpA1miPLO50I or "expiration" <= 1790948943)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = rGfjKpA1miPLO50I, \"expiration\" = 1791035343 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = rGfjKpA1miPLO50I or \"expiration\" <= 1790948943)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:19:05] local.ERROR: Error retrieving public settings {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"is_public\" = 1 and \"settings\".\"deleted_at\" is null)"} 
[2026-10-02 19:19:07] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from "cache" where "key" in (ims_academy_cache_dd0d77b9de409d0b185485aba64b83a2)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"cache\" where \"key\" in (ims_academy_cache_dd0d77b9de409d0b185485aba64b83a2)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\Repository->get()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(300): Illuminate\\Cache\\RateLimiter->{closure:Illuminate\\Cache\\RateLimiter::attempts():206}()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\RateLimiter->withoutSerializationOrCompression()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(129): Illuminate\\Cache\\RateLimiter->attempts()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(157): Illuminate\\Cache\\RateLimiter->tooManyAttempts()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(129): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequest()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(90): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequestUsingNamedLimiter()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle()
#17 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#19 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#28 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#52 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#53 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1295): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(525): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(420): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():411}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(411): Illuminate\\Database\\Connection->run()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Connection->select()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3460): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4050): Illuminate\\Database\\Query\\Builder->{closure:Illuminate\\Database\\Query\\Builder::get():3459}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3459): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(140): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(115): Illuminate\\Cache\\DatabaseStore->many()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(125): Illuminate\\Cache\\DatabaseStore->get()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\Repository->get()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(300): Illuminate\\Cache\\RateLimiter->{closure:Illuminate\\Cache\\RateLimiter::attempts():206}()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(206): Illuminate\\Cache\\RateLimiter->withoutSerializationOrCompression()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php(129): Illuminate\\Cache\\RateLimiter->attempts()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(157): Illuminate\\Cache\\RateLimiter->tooManyAttempts()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(129): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequest()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(90): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequestUsingNamedLimiter()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle()
#27 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#29 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#38 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#52 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#53 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#54 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#55 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#56 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#57 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#58 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#59 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#60 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#61 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#62 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#63 {main}
"} 
[2026-10-02 19:19:07] local.ERROR: Error retrieving public settings {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"is_public\" = 1 and \"settings\".\"deleted_at\" is null)"} 
[2026-10-02 19:19:07] local.ERROR: Error retrieving public settings {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"is_public\" = 1 and \"settings\".\"deleted_at\" is null)"} 
[2026-10-02 19:19:08] local.ERROR: Error retrieving public settings {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"is_public\" = 1 and \"settings\".\"deleted_at\" is null)"} 
[2026-10-02 19:19:11] local.ERROR: Error retrieving public settings {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"is_public\" = 1 and \"settings\".\"deleted_at\" is null)"} 
[2026-10-02 19:19:11] local.ERROR: Error retrieving public settings {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"is_public\" = 1 and \"settings\".\"deleted_at\" is null)"} 
[2026-10-02 19:19:13] local.ERROR: Error retrieving public settings {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"is_public\" = 1 and \"settings\".\"deleted_at\" is null)"} 
[2026-10-02 19:20:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = ly8FlGjFFtud8NMp, "expiration" = 1791035404 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = ly8FlGjFFtud8NMp or "expiration" <= 1790949004)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = ly8FlGjFFtud8NMp, \"expiration\" = 1791035404 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = ly8FlGjFFtud8NMp or \"expiration\" <= 1790949004)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:21:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = MxZX7GRH6Ze59FvY, "expiration" = 1791035463 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = MxZX7GRH6Ze59FvY or "expiration" <= 1790949063)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = MxZX7GRH6Ze59FvY, \"expiration\" = 1791035463 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = MxZX7GRH6Ze59FvY or \"expiration\" <= 1790949063)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:22:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = UrcLPwQf0TUpaUl3, "expiration" = 1791035523 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = UrcLPwQf0TUpaUl3 or "expiration" <= 1790949123)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = UrcLPwQf0TUpaUl3, \"expiration\" = 1791035523 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = UrcLPwQf0TUpaUl3 or \"expiration\" <= 1790949123)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:23:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = qDA4vOxHiM6dwLh8, "expiration" = 1791035583 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = qDA4vOxHiM6dwLh8 or "expiration" <= 1790949183)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = qDA4vOxHiM6dwLh8, \"expiration\" = 1791035583 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = qDA4vOxHiM6dwLh8 or \"expiration\" <= 1790949183)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:24:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = jXcWt5PTEPlsoSS5, "expiration" = 1791035644 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = jXcWt5PTEPlsoSS5 or "expiration" <= 1790949244)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = jXcWt5PTEPlsoSS5, \"expiration\" = 1791035644 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = jXcWt5PTEPlsoSS5 or \"expiration\" <= 1790949244)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:25:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = YO6ZMkCfbGyaBgaK, "expiration" = 1791035704 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = YO6ZMkCfbGyaBgaK or "expiration" <= 1790949304)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = YO6ZMkCfbGyaBgaK, \"expiration\" = 1791035704 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = YO6ZMkCfbGyaBgaK or \"expiration\" <= 1790949304)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:26:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = nzO9a1mCl6gxPHRh, "expiration" = 1791035763 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = nzO9a1mCl6gxPHRh or "expiration" <= 1790949363)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = nzO9a1mCl6gxPHRh, \"expiration\" = 1791035763 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = nzO9a1mCl6gxPHRh or \"expiration\" <= 1790949363)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:27:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = bBYUiUE3Xyu1ryGz, "expiration" = 1791035823 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = bBYUiUE3Xyu1ryGz or "expiration" <= 1790949423)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = bBYUiUE3Xyu1ryGz, \"expiration\" = 1791035823 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = bBYUiUE3Xyu1ryGz or \"expiration\" <= 1790949423)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:28:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = LZFNyNyJVlIB85ca, "expiration" = 1791035883 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = LZFNyNyJVlIB85ca or "expiration" <= 1790949483)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = LZFNyNyJVlIB85ca, \"expiration\" = 1791035883 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = LZFNyNyJVlIB85ca or \"expiration\" <= 1790949483)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:29:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = Szov5XIzHqnZgmuo, "expiration" = 1791035943 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = Szov5XIzHqnZgmuo or "expiration" <= 1790949543)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = Szov5XIzHqnZgmuo, \"expiration\" = 1791035943 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = Szov5XIzHqnZgmuo or \"expiration\" <= 1790949543)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:30:05] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = bPD0UB6gXlvsh6Rf, "expiration" = 1791036005 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = bPD0UB6gXlvsh6Rf or "expiration" <= 1790949605)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = bPD0UB6gXlvsh6Rf, \"expiration\" = 1791036005 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = bPD0UB6gXlvsh6Rf or \"expiration\" <= 1790949605)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:31:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = tKs4lS7hZ34ihx5g, "expiration" = 1791036064 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = tKs4lS7hZ34ihx5g or "expiration" <= 1790949664)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = tKs4lS7hZ34ihx5g, \"expiration\" = 1791036064 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = tKs4lS7hZ34ihx5g or \"expiration\" <= 1790949664)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:32:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = spnqAOdsedNUXUwb, "expiration" = 1791036123 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = spnqAOdsedNUXUwb or "expiration" <= 1790949723)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = spnqAOdsedNUXUwb, \"expiration\" = 1791036123 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = spnqAOdsedNUXUwb or \"expiration\" <= 1790949723)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:33:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = MX8S0MAuXrdKWSCT, "expiration" = 1791036183 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = MX8S0MAuXrdKWSCT or "expiration" <= 1790949783)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = MX8S0MAuXrdKWSCT, \"expiration\" = 1791036183 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = MX8S0MAuXrdKWSCT or \"expiration\" <= 1790949783)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:34:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = pulKcOaUfOlW0GRV, "expiration" = 1791036243 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = pulKcOaUfOlW0GRV or "expiration" <= 1790949843)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = pulKcOaUfOlW0GRV, \"expiration\" = 1791036243 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = pulKcOaUfOlW0GRV or \"expiration\" <= 1790949843)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:35:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = PuPmuiV8p0vOOkWy, "expiration" = 1791036304 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = PuPmuiV8p0vOOkWy or "expiration" <= 1790949904)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = PuPmuiV8p0vOOkWy, \"expiration\" = 1791036304 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = PuPmuiV8p0vOOkWy or \"expiration\" <= 1790949904)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:36:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = iEuc17trCciUZyi4, "expiration" = 1791036363 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = iEuc17trCciUZyi4 or "expiration" <= 1790949963)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = iEuc17trCciUZyi4, \"expiration\" = 1791036363 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = iEuc17trCciUZyi4 or \"expiration\" <= 1790949963)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:37:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = duN3F9d6HgzZ7UBN, "expiration" = 1791036423 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = duN3F9d6HgzZ7UBN or "expiration" <= 1790950023)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = duN3F9d6HgzZ7UBN, \"expiration\" = 1791036423 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = duN3F9d6HgzZ7UBN or \"expiration\" <= 1790950023)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:38:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = oXT4w8VyU57HLdk6, "expiration" = 1791036483 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = oXT4w8VyU57HLdk6 or "expiration" <= 1790950083)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = oXT4w8VyU57HLdk6, \"expiration\" = 1791036483 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = oXT4w8VyU57HLdk6 or \"expiration\" <= 1790950083)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:39:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = W4lm5DPxYO4iiKMl, "expiration" = 1791036544 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = W4lm5DPxYO4iiKMl or "expiration" <= 1790950144)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = W4lm5DPxYO4iiKMl, \"expiration\" = 1791036544 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = W4lm5DPxYO4iiKMl or \"expiration\" <= 1790950144)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:40:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = yPFMX4g7cwuk6FYQ, "expiration" = 1791036604 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = yPFMX4g7cwuk6FYQ or "expiration" <= 1790950204)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = yPFMX4g7cwuk6FYQ, \"expiration\" = 1791036604 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = yPFMX4g7cwuk6FYQ or \"expiration\" <= 1790950204)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:41:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = fEP8ExdYKGvjpY6d, "expiration" = 1791036663 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = fEP8ExdYKGvjpY6d or "expiration" <= 1790950263)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = fEP8ExdYKGvjpY6d, \"expiration\" = 1791036663 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = fEP8ExdYKGvjpY6d or \"expiration\" <= 1790950263)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:42:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = e8NTJc9blSCxkjNz, "expiration" = 1791036723 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = e8NTJc9blSCxkjNz or "expiration" <= 1790950323)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = e8NTJc9blSCxkjNz, \"expiration\" = 1791036723 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = e8NTJc9blSCxkjNz or \"expiration\" <= 1790950323)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:43:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = SckKkrvUNV435Ogn, "expiration" = 1791036783 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = SckKkrvUNV435Ogn or "expiration" <= 1790950383)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = SckKkrvUNV435Ogn, \"expiration\" = 1791036783 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = SckKkrvUNV435Ogn or \"expiration\" <= 1790950383)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:44:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = O5JU8B0CTQVKrpMO, "expiration" = 1791036844 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = O5JU8B0CTQVKrpMO or "expiration" <= 1790950444)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = O5JU8B0CTQVKrpMO, \"expiration\" = 1791036844 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = O5JU8B0CTQVKrpMO or \"expiration\" <= 1790950444)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:45:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = wfBgbiLo0bMzOkO9, "expiration" = 1791036904 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = wfBgbiLo0bMzOkO9 or "expiration" <= 1790950504)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = wfBgbiLo0bMzOkO9, \"expiration\" = 1791036904 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = wfBgbiLo0bMzOkO9 or \"expiration\" <= 1790950504)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:45:15] local.ERROR: Error retrieving public settings {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"is_public\" = 1 and \"settings\".\"deleted_at\" is null)"} 
[2026-10-02 19:45:21] local.ERROR: Error retrieving public settings {"error":"SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select * from \"settings\" where \"is_public\" = 1 and \"settings\".\"deleted_at\" is null)"} 
[2026-10-02 19:46:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = o8ZW22hGFNtRZde2, "expiration" = 1791036963 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = o8ZW22hGFNtRZde2 or "expiration" <= 1790950563)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = o8ZW22hGFNtRZde2, \"expiration\" = 1791036963 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = o8ZW22hGFNtRZde2 or \"expiration\" <= 1790950563)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:47:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = WPDapnX4IwdJYTB4, "expiration" = 1791037024 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = WPDapnX4IwdJYTB4 or "expiration" <= 1790950624)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = WPDapnX4IwdJYTB4, \"expiration\" = 1791037024 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = WPDapnX4IwdJYTB4 or \"expiration\" <= 1790950624)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:48:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = sjejREZTOKwW89TA, "expiration" = 1791037083 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = sjejREZTOKwW89TA or "expiration" <= 1790950683)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = sjejREZTOKwW89TA, \"expiration\" = 1791037083 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = sjejREZTOKwW89TA or \"expiration\" <= 1790950683)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:49:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = t6bhvyk9IrEnQly3, "expiration" = 1791037143 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = t6bhvyk9IrEnQly3 or "expiration" <= 1790950743)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = t6bhvyk9IrEnQly3, \"expiration\" = 1791037143 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = t6bhvyk9IrEnQly3 or \"expiration\" <= 1790950743)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:50:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = HBoE2sR58Sb6O9JN, "expiration" = 1791037204 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = HBoE2sR58Sb6O9JN or "expiration" <= 1790950804)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = HBoE2sR58Sb6O9JN, \"expiration\" = 1791037204 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = HBoE2sR58Sb6O9JN or \"expiration\" <= 1790950804)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:51:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = h4IvTR5ThANH3RXK, "expiration" = 1791037263 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = h4IvTR5ThANH3RXK or "expiration" <= 1790950863)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = h4IvTR5ThANH3RXK, \"expiration\" = 1791037263 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = h4IvTR5ThANH3RXK or \"expiration\" <= 1790950863)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:52:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = EvXgzfVni4l5Z40v, "expiration" = 1791037323 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = EvXgzfVni4l5Z40v or "expiration" <= 1790950923)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = EvXgzfVni4l5Z40v, \"expiration\" = 1791037323 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = EvXgzfVni4l5Z40v or \"expiration\" <= 1790950923)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:53:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = Nd0okD7QbL3aYKVx, "expiration" = 1791037383 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = Nd0okD7QbL3aYKVx or "expiration" <= 1790950983)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = Nd0okD7QbL3aYKVx, \"expiration\" = 1791037383 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = Nd0okD7QbL3aYKVx or \"expiration\" <= 1790950983)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:54:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = Gfd38JzVjbImvkH6, "expiration" = 1791037443 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = Gfd38JzVjbImvkH6 or "expiration" <= 1790951043)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = Gfd38JzVjbImvkH6, \"expiration\" = 1791037443 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = Gfd38JzVjbImvkH6 or \"expiration\" <= 1790951043)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:55:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = 4mrbqG0pYqowx8g5, "expiration" = 1791037504 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = 4mrbqG0pYqowx8g5 or "expiration" <= 1790951104)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = 4mrbqG0pYqowx8g5, \"expiration\" = 1791037504 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = 4mrbqG0pYqowx8g5 or \"expiration\" <= 1790951104)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:56:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = PiBUyyy9lBFzWdXE, "expiration" = 1791037563 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = PiBUyyy9lBFzWdXE or "expiration" <= 1790951163)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = PiBUyyy9lBFzWdXE, \"expiration\" = 1791037563 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = PiBUyyy9lBFzWdXE or \"expiration\" <= 1790951163)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:57:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = Iy51Skkz81SPRRH9, "expiration" = 1791037623 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = Iy51Skkz81SPRRH9 or "expiration" <= 1790951223)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = Iy51Skkz81SPRRH9, \"expiration\" = 1791037623 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = Iy51Skkz81SPRRH9 or \"expiration\" <= 1790951223)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:58:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = x9RCLtRGLpFQLGzD, "expiration" = 1791037683 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = x9RCLtRGLpFQLGzD or "expiration" <= 1790951283)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = x9RCLtRGLpFQLGzD, \"expiration\" = 1791037683 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = x9RCLtRGLpFQLGzD or \"expiration\" <= 1790951283)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 19:59:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = ETsM83riv7ZQH7Ee, "expiration" = 1791037743 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = ETsM83riv7ZQH7Ee or "expiration" <= 1790951343)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = ETsM83riv7ZQH7Ee, \"expiration\" = 1791037743 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = ETsM83riv7ZQH7Ee or \"expiration\" <= 1790951343)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:00:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = rMq5E8Xc1tPiIlDB, "expiration" = 1791037804 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = rMq5E8Xc1tPiIlDB or "expiration" <= 1790951404)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = rMq5E8Xc1tPiIlDB, \"expiration\" = 1791037804 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = rMq5E8Xc1tPiIlDB or \"expiration\" <= 1790951404)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:01:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = HFUghqZz31OkEq6L, "expiration" = 1791037864 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = HFUghqZz31OkEq6L or "expiration" <= 1790951464)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = HFUghqZz31OkEq6L, \"expiration\" = 1791037864 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = HFUghqZz31OkEq6L or \"expiration\" <= 1790951464)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:02:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = K3gC7bS6bcaQLh4h, "expiration" = 1791037923 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = K3gC7bS6bcaQLh4h or "expiration" <= 1790951523)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = K3gC7bS6bcaQLh4h, \"expiration\" = 1791037923 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = K3gC7bS6bcaQLh4h or \"expiration\" <= 1790951523)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:03:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = 2Th87cWOFIl2kbDj, "expiration" = 1791037983 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = 2Th87cWOFIl2kbDj or "expiration" <= 1790951583)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = 2Th87cWOFIl2kbDj, \"expiration\" = 1791037983 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = 2Th87cWOFIl2kbDj or \"expiration\" <= 1790951583)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:04:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = ExX2xlxyftzZU7fu, "expiration" = 1791038043 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = ExX2xlxyftzZU7fu or "expiration" <= 1790951643)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = ExX2xlxyftzZU7fu, \"expiration\" = 1791038043 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = ExX2xlxyftzZU7fu or \"expiration\" <= 1790951643)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:05:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = m0Z6OqNVpdeLe8GQ, "expiration" = 1791038103 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = m0Z6OqNVpdeLe8GQ or "expiration" <= 1790951703)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = m0Z6OqNVpdeLe8GQ, \"expiration\" = 1791038103 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = m0Z6OqNVpdeLe8GQ or \"expiration\" <= 1790951703)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:06:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = lvA1BwrTA2nRIw4Z, "expiration" = 1791038163 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = lvA1BwrTA2nRIw4Z or "expiration" <= 1790951763)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = lvA1BwrTA2nRIw4Z, \"expiration\" = 1791038163 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = lvA1BwrTA2nRIw4Z or \"expiration\" <= 1790951763)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:07:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = 4YdkGJUuWiI0MjMv, "expiration" = 1791038224 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = 4YdkGJUuWiI0MjMv or "expiration" <= 1790951824)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = 4YdkGJUuWiI0MjMv, \"expiration\" = 1791038224 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = 4YdkGJUuWiI0MjMv or \"expiration\" <= 1790951824)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:08:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = k6ZhuvsMlQROYdgQ, "expiration" = 1791038283 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = k6ZhuvsMlQROYdgQ or "expiration" <= 1790951883)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = k6ZhuvsMlQROYdgQ, \"expiration\" = 1791038283 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = k6ZhuvsMlQROYdgQ or \"expiration\" <= 1790951883)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:09:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = 9NGfBUcsh3GjjcZY, "expiration" = 1791038344 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = 9NGfBUcsh3GjjcZY or "expiration" <= 1790951944)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = 9NGfBUcsh3GjjcZY, \"expiration\" = 1791038344 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = 9NGfBUcsh3GjjcZY or \"expiration\" <= 1790951944)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:10:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = okKJ32tOYrqLDDzs, "expiration" = 1791038404 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = okKJ32tOYrqLDDzs or "expiration" <= 1790952004)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = okKJ32tOYrqLDDzs, \"expiration\" = 1791038404 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = okKJ32tOYrqLDDzs or \"expiration\" <= 1790952004)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:11:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = lKNur3M1NwSW8vnA, "expiration" = 1791038463 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = lKNur3M1NwSW8vnA or "expiration" <= 1790952063)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = lKNur3M1NwSW8vnA, \"expiration\" = 1791038463 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = lKNur3M1NwSW8vnA or \"expiration\" <= 1790952063)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:12:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = RpjyNwaNktVCwHQS, "expiration" = 1791038523 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = RpjyNwaNktVCwHQS or "expiration" <= 1790952123)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = RpjyNwaNktVCwHQS, \"expiration\" = 1791038523 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = RpjyNwaNktVCwHQS or \"expiration\" <= 1790952123)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:13:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = 43jTCxbbM6Re9aK3, "expiration" = 1791038583 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = 43jTCxbbM6Re9aK3 or "expiration" <= 1790952183)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = 43jTCxbbM6Re9aK3, \"expiration\" = 1791038583 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = 43jTCxbbM6Re9aK3 or \"expiration\" <= 1790952183)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:14:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = jzBjSyDtzpn7JBBf, "expiration" = 1791038643 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = jzBjSyDtzpn7JBBf or "expiration" <= 1790952243)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = jzBjSyDtzpn7JBBf, \"expiration\" = 1791038643 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = jzBjSyDtzpn7JBBf or \"expiration\" <= 1790952243)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:15:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = a5G2yZiroY2ELiH5, "expiration" = 1791038704 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = a5G2yZiroY2ELiH5 or "expiration" <= 1790952304)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = a5G2yZiroY2ELiH5, \"expiration\" = 1791038704 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = a5G2yZiroY2ELiH5 or \"expiration\" <= 1790952304)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:16:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = 8XnQbZMY06cf1gX7, "expiration" = 1791038763 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = 8XnQbZMY06cf1gX7 or "expiration" <= 1790952363)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = 8XnQbZMY06cf1gX7, \"expiration\" = 1791038763 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = 8XnQbZMY06cf1gX7 or \"expiration\" <= 1790952363)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:17:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = 1imw3CG516ATinbt, "expiration" = 1791038823 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = 1imw3CG516ATinbt or "expiration" <= 1790952423)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = 1imw3CG516ATinbt, \"expiration\" = 1791038823 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = 1imw3CG516ATinbt or \"expiration\" <= 1790952423)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:18:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = b8gD7CDH8KKWdarg, "expiration" = 1791038883 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = b8gD7CDH8KKWdarg or "expiration" <= 1790952483)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = b8gD7CDH8KKWdarg, \"expiration\" = 1791038883 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = b8gD7CDH8KKWdarg or \"expiration\" <= 1790952483)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:19:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = k9rooryOO39IgIOR, "expiration" = 1791038943 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = k9rooryOO39IgIOR or "expiration" <= 1790952543)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = k9rooryOO39IgIOR, \"expiration\" = 1791038943 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = k9rooryOO39IgIOR or \"expiration\" <= 1790952543)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:20:05] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = 6Wd8QLOBvJA3SEfs, "expiration" = 1791039005 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = 6Wd8QLOBvJA3SEfs or "expiration" <= 1790952605)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = 6Wd8QLOBvJA3SEfs, \"expiration\" = 1791039005 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = 6Wd8QLOBvJA3SEfs or \"expiration\" <= 1790952605)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:21:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = MoFGOVh1CgOSZDQQ, "expiration" = 1791039063 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = MoFGOVh1CgOSZDQQ or "expiration" <= 1790952663)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = MoFGOVh1CgOSZDQQ, \"expiration\" = 1791039063 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = MoFGOVh1CgOSZDQQ or \"expiration\" <= 1790952663)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:22:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = W0o76s1r6BZBoZPM, "expiration" = 1791039124 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = W0o76s1r6BZBoZPM or "expiration" <= 1790952724)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = W0o76s1r6BZBoZPM, \"expiration\" = 1791039124 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = W0o76s1r6BZBoZPM or \"expiration\" <= 1790952724)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:23:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = TfxfJdNQCsRjE2QA, "expiration" = 1791039183 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = TfxfJdNQCsRjE2QA or "expiration" <= 1790952783)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = TfxfJdNQCsRjE2QA, \"expiration\" = 1791039183 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = TfxfJdNQCsRjE2QA or \"expiration\" <= 1790952783)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:24:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = 3KJejwLDyf7qApUg, "expiration" = 1791039243 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = 3KJejwLDyf7qApUg or "expiration" <= 1790952843)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = 3KJejwLDyf7qApUg, \"expiration\" = 1791039243 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = 3KJejwLDyf7qApUg or \"expiration\" <= 1790952843)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:25:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = 0mbzhHJ0cMs7FE0s, "expiration" = 1791039303 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = 0mbzhHJ0cMs7FE0s or "expiration" <= 1790952903)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = 0mbzhHJ0cMs7FE0s, \"expiration\" = 1791039303 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = 0mbzhHJ0cMs7FE0s or \"expiration\" <= 1790952903)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:26:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = Gm5Ycuvb1hn5t4Pw, "expiration" = 1791039363 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = Gm5Ycuvb1hn5t4Pw or "expiration" <= 1790952963)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = Gm5Ycuvb1hn5t4Pw, \"expiration\" = 1791039363 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = Gm5Ycuvb1hn5t4Pw or \"expiration\" <= 1790952963)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:27:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = XN0nHTcOOpx841iZ, "expiration" = 1791039423 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = XN0nHTcOOpx841iZ or "expiration" <= 1790953023)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = XN0nHTcOOpx841iZ, \"expiration\" = 1791039423 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = XN0nHTcOOpx841iZ or \"expiration\" <= 1790953023)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:28:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = 2BQxfZPC1IHuYV4D, "expiration" = 1791039483 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = 2BQxfZPC1IHuYV4D or "expiration" <= 1790953083)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = 2BQxfZPC1IHuYV4D, \"expiration\" = 1791039483 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = 2BQxfZPC1IHuYV4D or \"expiration\" <= 1790953083)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:29:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = ZWWHdfOuBHlwvRCq, "expiration" = 1791039543 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = ZWWHdfOuBHlwvRCq or "expiration" <= 1790953143)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = ZWWHdfOuBHlwvRCq, \"expiration\" = 1791039543 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = ZWWHdfOuBHlwvRCq or \"expiration\" <= 1790953143)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:30:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = AqHCD5Fl7hG8cvwU, "expiration" = 1791039604 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = AqHCD5Fl7hG8cvwU or "expiration" <= 1790953204)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = AqHCD5Fl7hG8cvwU, \"expiration\" = 1791039604 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = AqHCD5Fl7hG8cvwU or \"expiration\" <= 1790953204)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:31:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = JXyVNcXYuc2e4ZBN, "expiration" = 1791039664 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = JXyVNcXYuc2e4ZBN or "expiration" <= 1790953264)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = JXyVNcXYuc2e4ZBN, \"expiration\" = 1791039664 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = JXyVNcXYuc2e4ZBN or \"expiration\" <= 1790953264)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:32:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = sAq3qVX8BFIaFsBV, "expiration" = 1791039723 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = sAq3qVX8BFIaFsBV or "expiration" <= 1790953323)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = sAq3qVX8BFIaFsBV, \"expiration\" = 1791039723 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = sAq3qVX8BFIaFsBV or \"expiration\" <= 1790953323)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:33:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = A8wKb2og2zFAzV6y, "expiration" = 1791039783 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = A8wKb2og2zFAzV6y or "expiration" <= 1790953383)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = A8wKb2og2zFAzV6y, \"expiration\" = 1791039783 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = A8wKb2og2zFAzV6y or \"expiration\" <= 1790953383)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:34:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = 1cLmEwZpefppUwsv, "expiration" = 1791039843 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = 1cLmEwZpefppUwsv or "expiration" <= 1790953443)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = 1cLmEwZpefppUwsv, \"expiration\" = 1791039843 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = 1cLmEwZpefppUwsv or \"expiration\" <= 1790953443)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:35:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = LGquttGFDFDwtsKb, "expiration" = 1791039904 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = LGquttGFDFDwtsKb or "expiration" <= 1790953504)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = LGquttGFDFDwtsKb, \"expiration\" = 1791039904 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = LGquttGFDFDwtsKb or \"expiration\" <= 1790953504)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:36:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = oMTxBOE0vDfVNabn, "expiration" = 1791039963 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = oMTxBOE0vDfVNabn or "expiration" <= 1790953563)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = oMTxBOE0vDfVNabn, \"expiration\" = 1791039963 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = oMTxBOE0vDfVNabn or \"expiration\" <= 1790953563)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:37:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = yxpnlXXvEJ0pTYiq, "expiration" = 1791040023 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = yxpnlXXvEJ0pTYiq or "expiration" <= 1790953623)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = yxpnlXXvEJ0pTYiq, \"expiration\" = 1791040023 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = yxpnlXXvEJ0pTYiq or \"expiration\" <= 1790953623)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:38:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = VEQJZ9Kz3bQqk1z9, "expiration" = 1791040083 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = VEQJZ9Kz3bQqk1z9 or "expiration" <= 1790953683)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = VEQJZ9Kz3bQqk1z9, \"expiration\" = 1791040083 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = VEQJZ9Kz3bQqk1z9 or \"expiration\" <= 1790953683)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:39:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = 9jhdO3kJqOu7bSJq, "expiration" = 1791040143 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = 9jhdO3kJqOu7bSJq or "expiration" <= 1790953743)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = 9jhdO3kJqOu7bSJq, \"expiration\" = 1791040143 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = 9jhdO3kJqOu7bSJq or \"expiration\" <= 1790953743)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:40:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = krfJoeg0mLr8KOBl, "expiration" = 1791040203 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = krfJoeg0mLr8KOBl or "expiration" <= 1790953803)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = krfJoeg0mLr8KOBl, \"expiration\" = 1791040203 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = krfJoeg0mLr8KOBl or \"expiration\" <= 1790953803)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:41:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = CK1YvltDEptOaZkO, "expiration" = 1791040263 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = CK1YvltDEptOaZkO or "expiration" <= 1790953863)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = CK1YvltDEptOaZkO, \"expiration\" = 1791040263 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = CK1YvltDEptOaZkO or \"expiration\" <= 1790953863)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:42:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = wjGc6zJDQR0Ufpw0, "expiration" = 1791040323 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = wjGc6zJDQR0Ufpw0 or "expiration" <= 1790953923)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = wjGc6zJDQR0Ufpw0, \"expiration\" = 1791040323 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = wjGc6zJDQR0Ufpw0 or \"expiration\" <= 1790953923)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:43:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = sGyu0XGwOiWm2RYM, "expiration" = 1791040383 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = sGyu0XGwOiWm2RYM or "expiration" <= 1790953983)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = sGyu0XGwOiWm2RYM, \"expiration\" = 1791040383 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = sGyu0XGwOiWm2RYM or \"expiration\" <= 1790953983)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:44:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = g2D94hwm7giC1xRE, "expiration" = 1791040443 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = g2D94hwm7giC1xRE or "expiration" <= 1790954043)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = g2D94hwm7giC1xRE, \"expiration\" = 1791040443 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = g2D94hwm7giC1xRE or \"expiration\" <= 1790954043)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:45:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = hHrFFYNE2FkAL1ez, "expiration" = 1791040504 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = hHrFFYNE2FkAL1ez or "expiration" <= 1790954104)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = hHrFFYNE2FkAL1ez, \"expiration\" = 1791040504 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = hHrFFYNE2FkAL1ez or \"expiration\" <= 1790954104)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:46:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = jkTKiy0HH2wsslh0, "expiration" = 1791040563 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = jkTKiy0HH2wsslh0 or "expiration" <= 1790954163)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = jkTKiy0HH2wsslh0, \"expiration\" = 1791040563 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = jkTKiy0HH2wsslh0 or \"expiration\" <= 1790954163)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:47:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = wB2CACTfPwB2EScu, "expiration" = 1791040623 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = wB2CACTfPwB2EScu or "expiration" <= 1790954223)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = wB2CACTfPwB2EScu, \"expiration\" = 1791040623 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = wB2CACTfPwB2EScu or \"expiration\" <= 1790954223)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:48:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = OfZFlFpuTtgo0Ol6, "expiration" = 1791040683 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = OfZFlFpuTtgo0Ol6 or "expiration" <= 1790954283)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = OfZFlFpuTtgo0Ol6, \"expiration\" = 1791040683 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = OfZFlFpuTtgo0Ol6 or \"expiration\" <= 1790954283)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:49:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = 7bnyejfvEF0lZU0r, "expiration" = 1791040743 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = 7bnyejfvEF0lZU0r or "expiration" <= 1790954343)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = 7bnyejfvEF0lZU0r, \"expiration\" = 1791040743 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = 7bnyejfvEF0lZU0r or \"expiration\" <= 1790954343)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:50:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = t8Qdz8NpiwPa0otZ, "expiration" = 1791040804 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = t8Qdz8NpiwPa0otZ or "expiration" <= 1790954404)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = t8Qdz8NpiwPa0otZ, \"expiration\" = 1791040804 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = t8Qdz8NpiwPa0otZ or \"expiration\" <= 1790954404)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:51:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = 1CIT63dNlykiPmCq, "expiration" = 1791040863 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = 1CIT63dNlykiPmCq or "expiration" <= 1790954463)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = 1CIT63dNlykiPmCq, \"expiration\" = 1791040863 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = 1CIT63dNlykiPmCq or \"expiration\" <= 1790954463)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:52:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = rRY7T1ucNlERU0BX, "expiration" = 1791040923 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = rRY7T1ucNlERU0BX or "expiration" <= 1790954523)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = rRY7T1ucNlERU0BX, \"expiration\" = 1791040923 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = rRY7T1ucNlERU0BX or \"expiration\" <= 1790954523)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:53:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = 2GQIwNszFiwJ2zse, "expiration" = 1791040983 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = 2GQIwNszFiwJ2zse or "expiration" <= 1790954583)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = 2GQIwNszFiwJ2zse, \"expiration\" = 1791040983 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = 2GQIwNszFiwJ2zse or \"expiration\" <= 1790954583)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:54:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = 1BRqCWFXQauZSCkK, "expiration" = 1791041044 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = 1BRqCWFXQauZSCkK or "expiration" <= 1790954644)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = 1BRqCWFXQauZSCkK, \"expiration\" = 1791041044 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = 1BRqCWFXQauZSCkK or \"expiration\" <= 1790954644)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:55:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = yoJpEeXp2goifPrh, "expiration" = 1791041104 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = yoJpEeXp2goifPrh or "expiration" <= 1790954704)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = yoJpEeXp2goifPrh, \"expiration\" = 1791041104 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = yoJpEeXp2goifPrh or \"expiration\" <= 1790954704)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:56:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = t4cBopV3hDoVDprh, "expiration" = 1791041163 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = t4cBopV3hDoVDprh or "expiration" <= 1790954763)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = t4cBopV3hDoVDprh, \"expiration\" = 1791041163 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = t4cBopV3hDoVDprh or \"expiration\" <= 1790954763)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:57:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = JO8v8KcfrNBcVUPz, "expiration" = 1791041223 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = JO8v8KcfrNBcVUPz or "expiration" <= 1790954823)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = JO8v8KcfrNBcVUPz, \"expiration\" = 1791041223 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = JO8v8KcfrNBcVUPz or \"expiration\" <= 1790954823)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:58:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = bDrEB2TfP77rJyBJ, "expiration" = 1791041283 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = bDrEB2TfP77rJyBJ or "expiration" <= 1790954883)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = bDrEB2TfP77rJyBJ, \"expiration\" = 1791041283 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = bDrEB2TfP77rJyBJ or \"expiration\" <= 1790954883)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 20:59:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = XuoQt6S6YplAgNlo, "expiration" = 1791041343 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = XuoQt6S6YplAgNlo or "expiration" <= 1790954943)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = XuoQt6S6YplAgNlo, \"expiration\" = 1791041343 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = XuoQt6S6YplAgNlo or \"expiration\" <= 1790954943)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:00:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = 3vGZ8mRpU8ZW7A5b, "expiration" = 1791041404 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = 3vGZ8mRpU8ZW7A5b or "expiration" <= 1790955004)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = 3vGZ8mRpU8ZW7A5b, \"expiration\" = 1791041404 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = 3vGZ8mRpU8ZW7A5b or \"expiration\" <= 1790955004)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:01:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = 42dxnvHTC6rwEudt, "expiration" = 1791041463 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = 42dxnvHTC6rwEudt or "expiration" <= 1790955063)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = 42dxnvHTC6rwEudt, \"expiration\" = 1791041463 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = 42dxnvHTC6rwEudt or \"expiration\" <= 1790955063)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:02:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = FZGjkaFWbUIB1A6Y, "expiration" = 1791041523 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = FZGjkaFWbUIB1A6Y or "expiration" <= 1790955123)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = FZGjkaFWbUIB1A6Y, \"expiration\" = 1791041523 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = FZGjkaFWbUIB1A6Y or \"expiration\" <= 1790955123)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:03:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = EPB07HkGN5eSE2wZ, "expiration" = 1791041583 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = EPB07HkGN5eSE2wZ or "expiration" <= 1790955183)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = EPB07HkGN5eSE2wZ, \"expiration\" = 1791041583 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = EPB07HkGN5eSE2wZ or \"expiration\" <= 1790955183)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:04:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = 7C9AFuFsVcx46bvp, "expiration" = 1791041643 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = 7C9AFuFsVcx46bvp or "expiration" <= 1790955243)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = 7C9AFuFsVcx46bvp, \"expiration\" = 1791041643 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = 7C9AFuFsVcx46bvp or \"expiration\" <= 1790955243)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:05:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = sgTJR6CUWeYdUIxu, "expiration" = 1791041703 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = sgTJR6CUWeYdUIxu or "expiration" <= 1790955303)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = sgTJR6CUWeYdUIxu, \"expiration\" = 1791041703 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = sgTJR6CUWeYdUIxu or \"expiration\" <= 1790955303)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:06:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = y7xauwRI58FCxQmt, "expiration" = 1791041764 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = y7xauwRI58FCxQmt or "expiration" <= 1790955364)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = y7xauwRI58FCxQmt, \"expiration\" = 1791041764 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = y7xauwRI58FCxQmt or \"expiration\" <= 1790955364)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:07:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = kDkAYNpbaBpiZ3Jf, "expiration" = 1791041823 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = kDkAYNpbaBpiZ3Jf or "expiration" <= 1790955423)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = kDkAYNpbaBpiZ3Jf, \"expiration\" = 1791041823 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = kDkAYNpbaBpiZ3Jf or \"expiration\" <= 1790955423)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:08:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = mX0FUgfY0H3DNycW, "expiration" = 1791041884 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = mX0FUgfY0H3DNycW or "expiration" <= 1790955484)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = mX0FUgfY0H3DNycW, \"expiration\" = 1791041884 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = mX0FUgfY0H3DNycW or \"expiration\" <= 1790955484)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:09:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = JTtm0DYp2dxqP6Zg, "expiration" = 1791041943 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = JTtm0DYp2dxqP6Zg or "expiration" <= 1790955543)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = JTtm0DYp2dxqP6Zg, \"expiration\" = 1791041943 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = JTtm0DYp2dxqP6Zg or \"expiration\" <= 1790955543)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:10:05] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = LtG77U43s7qA1CTL, "expiration" = 1791042004 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = LtG77U43s7qA1CTL or "expiration" <= 1790955604)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = LtG77U43s7qA1CTL, \"expiration\" = 1791042004 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = LtG77U43s7qA1CTL or \"expiration\" <= 1790955604)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:11:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = 8JQ2FPx8zGq1q1qD, "expiration" = 1791042063 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = 8JQ2FPx8zGq1q1qD or "expiration" <= 1790955663)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = 8JQ2FPx8zGq1q1qD, \"expiration\" = 1791042063 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = 8JQ2FPx8zGq1q1qD or \"expiration\" <= 1790955663)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:12:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = OIb0Sy6q96xMqxQV, "expiration" = 1791042123 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = OIb0Sy6q96xMqxQV or "expiration" <= 1790955723)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = OIb0Sy6q96xMqxQV, \"expiration\" = 1791042123 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = OIb0Sy6q96xMqxQV or \"expiration\" <= 1790955723)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:13:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = BSG6NJ64HLCZtUoI, "expiration" = 1791042183 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = BSG6NJ64HLCZtUoI or "expiration" <= 1790955783)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = BSG6NJ64HLCZtUoI, \"expiration\" = 1791042183 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = BSG6NJ64HLCZtUoI or \"expiration\" <= 1790955783)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:14:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = hX5geeRuk6GJ6eIg, "expiration" = 1791042243 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = hX5geeRuk6GJ6eIg or "expiration" <= 1790955843)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = hX5geeRuk6GJ6eIg, \"expiration\" = 1791042243 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = hX5geeRuk6GJ6eIg or \"expiration\" <= 1790955843)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:15:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = YyCEaVdFkx6iIyPw, "expiration" = 1791042304 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = YyCEaVdFkx6iIyPw or "expiration" <= 1790955904)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = YyCEaVdFkx6iIyPw, \"expiration\" = 1791042304 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = YyCEaVdFkx6iIyPw or \"expiration\" <= 1790955904)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:16:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = 5arXUFk58L1ffxAk, "expiration" = 1791042363 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = 5arXUFk58L1ffxAk or "expiration" <= 1790955963)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = 5arXUFk58L1ffxAk, \"expiration\" = 1791042363 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = 5arXUFk58L1ffxAk or \"expiration\" <= 1790955963)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:17:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = EoApqehDGikWMLHC, "expiration" = 1791042423 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = EoApqehDGikWMLHC or "expiration" <= 1790956023)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = EoApqehDGikWMLHC, \"expiration\" = 1791042423 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = EoApqehDGikWMLHC or \"expiration\" <= 1790956023)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:18:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = UvqMSQEd8QIZSfsN, "expiration" = 1791042483 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = UvqMSQEd8QIZSfsN or "expiration" <= 1790956083)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = UvqMSQEd8QIZSfsN, \"expiration\" = 1791042483 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = UvqMSQEd8QIZSfsN or \"expiration\" <= 1790956083)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:19:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = kPdx3kMcFVPKB7Ee, "expiration" = 1791042543 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = kPdx3kMcFVPKB7Ee or "expiration" <= 1790956143)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = kPdx3kMcFVPKB7Ee, \"expiration\" = 1791042543 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = kPdx3kMcFVPKB7Ee or \"expiration\" <= 1790956143)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:20:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = Y8yFZ8mCpUTX8DtH, "expiration" = 1791042604 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = Y8yFZ8mCpUTX8DtH or "expiration" <= 1790956204)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = Y8yFZ8mCpUTX8DtH, \"expiration\" = 1791042604 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = Y8yFZ8mCpUTX8DtH or \"expiration\" <= 1790956204)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:21:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = Nu2ojgUrB6fiFMUs, "expiration" = 1791042664 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = Nu2ojgUrB6fiFMUs or "expiration" <= 1790956264)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = Nu2ojgUrB6fiFMUs, \"expiration\" = 1791042664 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = Nu2ojgUrB6fiFMUs or \"expiration\" <= 1790956264)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:22:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = yGUwaxtgCymqVLCj, "expiration" = 1791042724 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = yGUwaxtgCymqVLCj or "expiration" <= 1790956324)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = yGUwaxtgCymqVLCj, \"expiration\" = 1791042724 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = yGUwaxtgCymqVLCj or \"expiration\" <= 1790956324)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:23:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = 2xlijdQx3e4RJ65g, "expiration" = 1791042784 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = 2xlijdQx3e4RJ65g or "expiration" <= 1790956384)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = 2xlijdQx3e4RJ65g, \"expiration\" = 1791042784 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = 2xlijdQx3e4RJ65g or \"expiration\" <= 1790956384)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:24:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = l1ecuQd7ENnO8Fho, "expiration" = 1791042844 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = l1ecuQd7ENnO8Fho or "expiration" <= 1790956444)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = l1ecuQd7ENnO8Fho, \"expiration\" = 1791042844 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = l1ecuQd7ENnO8Fho or \"expiration\" <= 1790956444)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:25:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = xkUAY9mddyLGSeVX, "expiration" = 1791042904 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = xkUAY9mddyLGSeVX or "expiration" <= 1790956504)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = xkUAY9mddyLGSeVX, \"expiration\" = 1791042904 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = xkUAY9mddyLGSeVX or \"expiration\" <= 1790956504)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:26:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = 6pPmmWxcnhFauxdf, "expiration" = 1791042963 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = 6pPmmWxcnhFauxdf or "expiration" <= 1790956563)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = 6pPmmWxcnhFauxdf, \"expiration\" = 1791042963 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = 6pPmmWxcnhFauxdf or \"expiration\" <= 1790956563)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:27:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = wIE7hiTLaZZeaXRl, "expiration" = 1791043023 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = wIE7hiTLaZZeaXRl or "expiration" <= 1790956623)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = wIE7hiTLaZZeaXRl, \"expiration\" = 1791043023 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = wIE7hiTLaZZeaXRl or \"expiration\" <= 1790956623)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:28:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = YtFiFGbJDIznu3im, "expiration" = 1791043084 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = YtFiFGbJDIznu3im or "expiration" <= 1790956684)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = YtFiFGbJDIznu3im, \"expiration\" = 1791043084 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = YtFiFGbJDIznu3im or \"expiration\" <= 1790956684)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:29:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = HRMg62vHHwi3Rh4G, "expiration" = 1791043144 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = HRMg62vHHwi3Rh4G or "expiration" <= 1790956744)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = HRMg62vHHwi3Rh4G, \"expiration\" = 1791043144 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = HRMg62vHHwi3Rh4G or \"expiration\" <= 1790956744)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:30:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = sCABZOq1bfYe8zxV, "expiration" = 1791043204 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = sCABZOq1bfYe8zxV or "expiration" <= 1790956804)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = sCABZOq1bfYe8zxV, \"expiration\" = 1791043204 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = sCABZOq1bfYe8zxV or \"expiration\" <= 1790956804)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:31:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = ASYyw4QK29djrurQ, "expiration" = 1791043263 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = ASYyw4QK29djrurQ or "expiration" <= 1790956863)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = ASYyw4QK29djrurQ, \"expiration\" = 1791043263 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = ASYyw4QK29djrurQ or \"expiration\" <= 1790956863)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:32:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = 1SrNpn9UlprnzeT1, "expiration" = 1791043323 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = 1SrNpn9UlprnzeT1 or "expiration" <= 1790956923)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = 1SrNpn9UlprnzeT1, \"expiration\" = 1791043323 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = 1SrNpn9UlprnzeT1 or \"expiration\" <= 1790956923)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:33:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = wcRnWD029YpaPVAM, "expiration" = 1791043383 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = wcRnWD029YpaPVAM or "expiration" <= 1790956983)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = wcRnWD029YpaPVAM, \"expiration\" = 1791043383 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = wcRnWD029YpaPVAM or \"expiration\" <= 1790956983)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:34:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = sTmTXCBdhy5cIDYB, "expiration" = 1791043443 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = sTmTXCBdhy5cIDYB or "expiration" <= 1790957043)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = sTmTXCBdhy5cIDYB, \"expiration\" = 1791043443 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = sTmTXCBdhy5cIDYB or \"expiration\" <= 1790957043)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:35:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = IoSZQ6PKUqj7uiCf, "expiration" = 1791043504 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = IoSZQ6PKUqj7uiCf or "expiration" <= 1790957104)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = IoSZQ6PKUqj7uiCf, \"expiration\" = 1791043504 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = IoSZQ6PKUqj7uiCf or \"expiration\" <= 1790957104)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:36:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = xxZRINYlx2KI6hZt, "expiration" = 1791043563 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = xxZRINYlx2KI6hZt or "expiration" <= 1790957163)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = xxZRINYlx2KI6hZt, \"expiration\" = 1791043563 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = xxZRINYlx2KI6hZt or \"expiration\" <= 1790957163)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:37:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = gDLqn3UNpCUiMaD9, "expiration" = 1791043623 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = gDLqn3UNpCUiMaD9 or "expiration" <= 1790957223)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = gDLqn3UNpCUiMaD9, \"expiration\" = 1791043623 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = gDLqn3UNpCUiMaD9 or \"expiration\" <= 1790957223)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:38:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = n7fvQyQV3iWQK08v, "expiration" = 1791043683 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = n7fvQyQV3iWQK08v or "expiration" <= 1790957283)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = n7fvQyQV3iWQK08v, \"expiration\" = 1791043683 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = n7fvQyQV3iWQK08v or \"expiration\" <= 1790957283)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:39:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = IoBgzzTe5CtDl17O, "expiration" = 1791043744 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = IoBgzzTe5CtDl17O or "expiration" <= 1790957344)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = IoBgzzTe5CtDl17O, \"expiration\" = 1791043744 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = IoBgzzTe5CtDl17O or \"expiration\" <= 1790957344)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:40:05] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = ag7inj0J14nvOuFb, "expiration" = 1791043804 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = ag7inj0J14nvOuFb or "expiration" <= 1790957404)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = ag7inj0J14nvOuFb, \"expiration\" = 1791043804 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = ag7inj0J14nvOuFb or \"expiration\" <= 1790957404)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:41:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = Ert65EOyFmvMrozg, "expiration" = 1791043863 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = Ert65EOyFmvMrozg or "expiration" <= 1790957463)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = Ert65EOyFmvMrozg, \"expiration\" = 1791043863 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = Ert65EOyFmvMrozg or \"expiration\" <= 1790957463)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:42:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = OYGTEcBWxzggHi76, "expiration" = 1791043923 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = OYGTEcBWxzggHi76 or "expiration" <= 1790957523)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = OYGTEcBWxzggHi76, \"expiration\" = 1791043923 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = OYGTEcBWxzggHi76 or \"expiration\" <= 1790957523)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:43:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = DX5jVI8Aq9zdozeZ, "expiration" = 1791043983 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = DX5jVI8Aq9zdozeZ or "expiration" <= 1790957583)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = DX5jVI8Aq9zdozeZ, \"expiration\" = 1791043983 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = DX5jVI8Aq9zdozeZ or \"expiration\" <= 1790957583)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:44:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = rIEvnkbpylH0dtET, "expiration" = 1791044043 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = rIEvnkbpylH0dtET or "expiration" <= 1790957643)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = rIEvnkbpylH0dtET, \"expiration\" = 1791044043 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = rIEvnkbpylH0dtET or \"expiration\" <= 1790957643)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:45:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = MNAmTh2iNLL1dUjo, "expiration" = 1791044104 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = MNAmTh2iNLL1dUjo or "expiration" <= 1790957704)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = MNAmTh2iNLL1dUjo, \"expiration\" = 1791044104 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = MNAmTh2iNLL1dUjo or \"expiration\" <= 1790957704)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:46:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = MjJgVresRN8mcniI, "expiration" = 1791044163 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = MjJgVresRN8mcniI or "expiration" <= 1790957763)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = MjJgVresRN8mcniI, \"expiration\" = 1791044163 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = MjJgVresRN8mcniI or \"expiration\" <= 1790957763)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:47:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = Lnb7FeAkg3GNisdk, "expiration" = 1791044223 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = Lnb7FeAkg3GNisdk or "expiration" <= 1790957823)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = Lnb7FeAkg3GNisdk, \"expiration\" = 1791044223 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = Lnb7FeAkg3GNisdk or \"expiration\" <= 1790957823)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:48:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = LrYZmoXwnArlDOOf, "expiration" = 1791044283 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = LrYZmoXwnArlDOOf or "expiration" <= 1790957883)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = LrYZmoXwnArlDOOf, \"expiration\" = 1791044283 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = LrYZmoXwnArlDOOf or \"expiration\" <= 1790957883)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:49:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = a806iDYicwqc0tvU, "expiration" = 1791044344 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = a806iDYicwqc0tvU or "expiration" <= 1790957944)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = a806iDYicwqc0tvU, \"expiration\" = 1791044344 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = a806iDYicwqc0tvU or \"expiration\" <= 1790957944)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:50:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = EayAvu4EDqYxgiX3, "expiration" = 1791044404 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = EayAvu4EDqYxgiX3 or "expiration" <= 1790958004)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = EayAvu4EDqYxgiX3, \"expiration\" = 1791044404 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = EayAvu4EDqYxgiX3 or \"expiration\" <= 1790958004)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:51:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = tPmYyOn0eOpr6wKp, "expiration" = 1791044464 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = tPmYyOn0eOpr6wKp or "expiration" <= 1790958064)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = tPmYyOn0eOpr6wKp, \"expiration\" = 1791044464 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = tPmYyOn0eOpr6wKp or \"expiration\" <= 1790958064)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:52:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = 4HbwYaPBQAOP1rFj, "expiration" = 1791044523 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = 4HbwYaPBQAOP1rFj or "expiration" <= 1790958123)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = 4HbwYaPBQAOP1rFj, \"expiration\" = 1791044523 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = 4HbwYaPBQAOP1rFj or \"expiration\" <= 1790958123)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:53:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = RiaYwJbQn5bHZ4x3, "expiration" = 1791044583 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = RiaYwJbQn5bHZ4x3 or "expiration" <= 1790958183)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = RiaYwJbQn5bHZ4x3, \"expiration\" = 1791044583 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = RiaYwJbQn5bHZ4x3 or \"expiration\" <= 1790958183)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:54:03] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = rFflt8kv2nvnkGWg, "expiration" = 1791044643 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = rFflt8kv2nvnkGWg or "expiration" <= 1790958243)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = rFflt8kv2nvnkGWg, \"expiration\" = 1791044643 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = rFflt8kv2nvnkGWg or \"expiration\" <= 1790958243)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 21:55:04] local.ERROR: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update "cache_locks" set "owner" = XMmW5dnmIl0tOpWJ, "expiration" = 1791044704 where "key" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and ("owner" = XMmW5dnmIl0tOpWJ or "expiration" <= 1790958304)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: update \"cache_locks\" set \"owner\" = XMmW5dnmIl0tOpWJ, \"expiration\" = 1791044704 where \"key\" = ims_academy_cache_framework/schedule-303ee27b0319242da8cdd5fa562f2a6665ef3814 and (\"owner\" = XMmW5dnmIl0tOpWJ or \"expiration\" <= 1790958304)) at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:838)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#21 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#23 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#24 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#25 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#28 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#29 {main}

[previous exception] [object] (PDOException(code: 7): SQLSTATE[08006] [7] connection to server at \"127.0.0.1\", port 5432 failed: Connection refused
\tIs the server running on that host and accepting TCP/IP connections? at /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(35): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(186): Illuminate\\Database\\Connectors\\PostgresConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithHosts():181}()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1257): call_user_func()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(605): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(827): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::affectingStatement():597}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(794): Illuminate\\Database\\Connection->runQueryCallback()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(597): Illuminate\\Database\\Connection->run()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(549): Illuminate\\Database\\Connection->affectingStatement()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(4204): Illuminate\\Database\\Connection->update()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/DatabaseLock.php(85): Illuminate\\Database\\Query\\Builder->update()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\\Cache\\DatabaseLock->acquire()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php(65): Illuminate\\Cache\\Lock->get()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php(152): Illuminate\\Console\\Scheduling\\CacheEventMutex->exists()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\Event->{closure:Illuminate\\Console\\Scheduling\\ManagesAttributes::withoutOverlapping():151}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(84): Illuminate\\Container\\Util::unwrapIfClosure()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(336): Illuminate\\Container\\Container->call()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(121): Illuminate\\Console\\Scheduling\\Event->filtersPass()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/html/api_loyala_backend/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run()
#32 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/html/api_loyala_backend/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 /var/www/html/api_loyala_backend/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#37 {main}
"} 
[2026-10-02 22:00:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 17:45:17","page":1} 
[2026-10-02 22:00:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 22:00:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 22:00:20] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-02 21:00:19","window_to":"2026-10-02 22:00:20"} 
[2026-10-02 22:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 22:00:18","page":1} 
[2026-10-02 22:15:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 22:15:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 22:30:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 22:15:09","page":1} 
[2026-10-02 22:30:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 22:30:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 22:45:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 22:30:11","page":1} 
[2026-10-02 22:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 22:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 23:00:16] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 22:45:10","page":1} 
[2026-10-02 23:00:16] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-02 22:00:16","window_to":"2026-10-02 23:00:16"} 
[2026-10-02 23:00:17] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 23:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 23:13:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-02 23:13:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-02 23:13:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-02 23:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 23:00:16","page":1} 
[2026-10-02 23:15:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 23:15:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 23:30:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 23:15:10","page":1} 
[2026-10-02 23:30:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 23:30:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-02 23:45:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 23:30:12","page":1} 
[2026-10-02 23:45:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-02 23:45:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 00:00:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-02 23:45:11","page":1} 
[2026-10-03 00:00:20] local.INFO: Student payment status check queued {"batches":1,"students":55} 
[2026-10-03 00:00:20] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_10_03_00_00_20.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-10-03 00:00:20] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-02 23:00:20","window_to":"2026-10-03 00:00:20"} 
[2026-10-03 00:00:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 00:00:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 00:00:27] local.INFO: Student payment status cron evaluated {"student_id":5,"admission_no":"26/000001","outstanding_amount":24000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:29] local.INFO: Student payment status cron evaluated {"student_id":13,"admission_no":"26/000009","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:31] local.INFO: Student payment status cron evaluated {"student_id":14,"admission_no":"26/000010","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:32] local.INFO: Student payment status cron evaluated {"student_id":16,"admission_no":"26/000012","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:34] local.INFO: Student payment status cron evaluated {"student_id":17,"admission_no":"26/000013","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:36] local.INFO: Student payment status cron evaluated {"student_id":20,"admission_no":"26/000016","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:36] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_10_03_00_00_20.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-10-03 00:00:37] local.INFO: Student payment status cron evaluated {"student_id":31,"admission_no":"26/000027","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:37] local.INFO: Student payment status cron evaluated {"student_id":32,"admission_no":"26/000028","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:37] local.INFO: Student payment status cron evaluated {"student_id":33,"admission_no":"26/000029","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:37] local.INFO: Student payment status cron evaluated {"student_id":34,"admission_no":"26/000030","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:38] local.INFO: Student payment status cron evaluated {"student_id":35,"admission_no":"26/000031","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:38] local.INFO: Student payment status cron evaluated {"student_id":23,"admission_no":"26/000019","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:38] local.INFO: Student payment status cron evaluated {"student_id":26,"admission_no":"26/000022","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:39] local.INFO: Student payment status cron evaluated {"student_id":28,"admission_no":"26/000024","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:39] local.INFO: Student payment status cron evaluated {"student_id":36,"admission_no":"26/000032","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:39] local.INFO: Student payment status cron evaluated {"student_id":37,"admission_no":"26/000033","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:39] local.INFO: Student payment status cron evaluated {"student_id":38,"admission_no":"26/000034","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:39] local.INFO: Student payment status cron evaluated {"student_id":39,"admission_no":"26/000035","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:40] local.INFO: Student payment status cron evaluated {"student_id":40,"admission_no":"26/000036","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:40] local.INFO: Student payment status cron evaluated {"student_id":43,"admission_no":"26/000039","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:40] local.INFO: Student payment status cron evaluated {"student_id":44,"admission_no":"26/000040","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:40] local.INFO: Student payment status cron evaluated {"student_id":45,"admission_no":"26/000041","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:40] local.INFO: Student payment status cron evaluated {"student_id":46,"admission_no":"26/000042","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:40] local.INFO: Student payment status cron evaluated {"student_id":47,"admission_no":"26/000043","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:40] local.INFO: Student payment status cron evaluated {"student_id":50,"admission_no":"26/000046","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:41] local.INFO: Student payment status cron evaluated {"student_id":51,"admission_no":"26/000047","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:41] local.INFO: Student payment status cron evaluated {"student_id":52,"admission_no":"26/000048","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:41] local.INFO: Student payment status cron evaluated {"student_id":53,"admission_no":"26/000049","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:41] local.INFO: Student payment status cron evaluated {"student_id":54,"admission_no":"26/000050","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:41] local.INFO: Student payment status cron evaluated {"student_id":55,"admission_no":"26/000051","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:41] local.INFO: Student payment status cron evaluated {"student_id":56,"admission_no":"26/000052","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:41] local.INFO: Student payment status cron evaluated {"student_id":57,"admission_no":"26/000053","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:41] local.INFO: Student payment status cron evaluated {"student_id":59,"admission_no":"26/000055","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:41] local.INFO: Student payment status cron evaluated {"student_id":61,"admission_no":"26/000057","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:42] local.INFO: Student payment status cron evaluated {"student_id":63,"admission_no":"26/000059","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:42] local.INFO: Student payment status cron evaluated {"student_id":64,"admission_no":"26/000060","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:42] local.INFO: Student payment status cron evaluated {"student_id":65,"admission_no":"26/000061","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:42] local.INFO: Student payment status cron evaluated {"student_id":66,"admission_no":"26/000062","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:42] local.INFO: Student payment status cron evaluated {"student_id":67,"admission_no":"26/000063","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:42] local.INFO: Student payment status cron evaluated {"student_id":68,"admission_no":"26/000064","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:42] local.INFO: Student payment status cron evaluated {"student_id":69,"admission_no":"26/000065","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:42] local.INFO: Student payment status cron evaluated {"student_id":70,"admission_no":"26/000066","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:42] local.INFO: Student payment status cron evaluated {"student_id":72,"admission_no":"26/000068","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:42] local.INFO: Student payment status cron evaluated {"student_id":73,"admission_no":"26/000069","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:42] local.INFO: Student payment status cron evaluated {"student_id":74,"admission_no":"26/000070","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:42] local.INFO: Student payment status cron evaluated {"student_id":75,"admission_no":"26/000071","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:42] local.INFO: Student payment status cron evaluated {"student_id":76,"admission_no":"26/000072","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:42] local.INFO: Student payment status cron evaluated {"student_id":77,"admission_no":"26/000073","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:42] local.INFO: Student payment status cron evaluated {"student_id":78,"admission_no":"26/000074","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:43] local.INFO: Student payment status cron evaluated {"student_id":80,"admission_no":"26/000076","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:43] local.INFO: Student payment status cron evaluated {"student_id":8,"admission_no":"26/000004","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:43] local.INFO: Student payment status cron evaluated {"student_id":9,"admission_no":"26/000005","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:43] local.INFO: Student payment status cron evaluated {"student_id":22,"admission_no":"26/000018","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:43] local.INFO: Student payment status cron evaluated {"student_id":79,"admission_no":"26/000075","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:00:43] local.INFO: Student payment status cron evaluated {"student_id":81,"admission_no":"26/000077","outstanding_amount":10000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-03 00:15:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 00:00:19","page":1} 
[2026-10-03 00:15:11] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 00:15:11] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 00:30:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 00:15:10","page":1} 
[2026-10-03 00:30:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 00:30:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 00:45:10] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 00:30:11","page":1} 
[2026-10-03 00:45:10] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 00:45:10] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 01:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 00:45:10","page":1} 
[2026-10-03 01:00:15] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-03 00:00:15","window_to":"2026-10-03 01:00:15"} 
[2026-10-03 01:00:15] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 01:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 01:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 01:00:14","page":1} 
[2026-10-03 01:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 01:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 01:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 01:15:07","page":1} 
[2026-10-03 01:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 01:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 01:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 01:30:08","page":1} 
[2026-10-03 01:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 01:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 02:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 01:45:07","page":1} 
[2026-10-03 02:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 02:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-03 01:00:12","window_to":"2026-10-03 02:00:12"} 
[2026-10-03 02:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 02:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 02:00:11","page":1} 
[2026-10-03 02:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 02:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 02:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 02:15:07","page":1} 
[2026-10-03 02:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 02:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 02:45:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 02:30:07","page":1} 
[2026-10-03 02:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 02:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 03:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 02:45:06","page":1} 
[2026-10-03 03:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 03:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-03 02:00:12","window_to":"2026-10-03 03:00:12"} 
[2026-10-03 03:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 03:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 03:00:11","page":1} 
[2026-10-03 03:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 03:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 03:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 03:15:07","page":1} 
[2026-10-03 03:30:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 03:30:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 03:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 03:30:07","page":1} 
[2026-10-03 03:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 03:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 04:00:11] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 03:45:07","page":1} 
[2026-10-03 04:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 04:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 04:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-03 03:00:12","window_to":"2026-10-03 04:00:12"} 
[2026-10-03 04:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 04:00:11","page":1} 
[2026-10-03 04:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 04:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 04:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 04:15:07","page":1} 
[2026-10-03 04:30:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 04:30:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 04:45:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 04:30:07","page":1} 
[2026-10-03 04:45:06] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 04:45:06] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 05:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 04:45:06","page":1} 
[2026-10-03 05:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-03 04:00:12","window_to":"2026-10-03 05:00:12"} 
[2026-10-03 05:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 05:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 05:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 05:00:12","page":1} 
[2026-10-03 05:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 05:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 05:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 05:15:07","page":1} 
[2026-10-03 05:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 05:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 05:45:06] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 05:30:09","page":1} 
[2026-10-03 05:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 05:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 06:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 05:45:06","page":1} 
[2026-10-03 06:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-03 05:00:12","window_to":"2026-10-03 06:00:12"} 
[2026-10-03 06:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 06:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 06:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 06:00:12","page":1} 
[2026-10-03 06:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 06:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 06:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 06:15:07","page":1} 
[2026-10-03 06:30:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 06:30:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 06:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 06:30:07","page":1} 
[2026-10-03 06:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 06:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 07:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 06:45:07","page":1} 
[2026-10-03 07:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 07:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 07:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-03 06:00:13","window_to":"2026-10-03 07:00:13"} 
[2026-10-03 07:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 07:00:12","page":1} 
[2026-10-03 07:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 07:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 07:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 07:15:07","page":1} 
[2026-10-03 07:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 07:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 07:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 07:30:08","page":1} 
[2026-10-03 07:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 07:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 08:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 07:45:07","page":1} 
[2026-10-03 08:00:16] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-03 07:00:15","window_to":"2026-10-03 08:00:15"} 
[2026-10-03 08:00:16] local.INFO: Payment reminders queued {"batches":1,"students":55} 
[2026-10-03 08:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 08:00:17] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 08:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 08:00:15","page":1} 
[2026-10-03 08:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 08:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 08:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 08:15:08","page":1} 
[2026-10-03 08:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 08:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 08:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 08:30:08","page":1} 
[2026-10-03 08:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 08:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 09:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 08:45:07","page":1} 
[2026-10-03 09:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-03 08:00:12","window_to":"2026-10-03 09:00:12"} 
[2026-10-03 09:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 09:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 09:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 09:00:12","page":1} 
[2026-10-03 09:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 09:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 09:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 09:15:07","page":1} 
[2026-10-03 09:30:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 09:30:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 09:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 09:30:07","page":1} 
[2026-10-03 09:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 09:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 10:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 09:45:07","page":1} 
[2026-10-03 10:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-03 09:00:12","window_to":"2026-10-03 10:00:12"} 
[2026-10-03 10:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 10:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 10:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 10:00:12","page":1} 
[2026-10-03 10:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 10:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 10:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 10:15:08","page":1} 
[2026-10-03 10:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 10:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 10:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 10:30:08","page":1} 
[2026-10-03 10:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 10:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 11:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 10:45:07","page":1} 
[2026-10-03 11:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-03 10:00:12","window_to":"2026-10-03 11:00:12"} 
[2026-10-03 11:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 11:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 11:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 11:00:12","page":1} 
[2026-10-03 11:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 11:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 11:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 11:15:07","page":1} 
[2026-10-03 11:30:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 11:30:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 11:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 11:30:07","page":1} 
[2026-10-03 11:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 11:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 12:00:15] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 11:45:07","page":1} 
[2026-10-03 12:00:16] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 12:00:16] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 12:00:16] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_10_03_12_00_16.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-10-03 12:00:16] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-03 11:00:16","window_to":"2026-10-03 12:00:16"} 
[2026-10-03 12:00:26] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_10_03_12_00_16.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-10-03 12:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 12:00:15","page":1} 
[2026-10-03 12:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 12:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 12:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 12:15:07","page":1} 
[2026-10-03 12:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 12:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 12:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 12:30:07","page":1} 
[2026-10-03 12:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 12:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 13:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 12:45:08","page":1} 
[2026-10-03 13:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-03 12:00:13","window_to":"2026-10-03 13:00:13"} 
[2026-10-03 13:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 13:00:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 13:15:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 13:00:13","page":1} 
[2026-10-03 13:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 13:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 13:30:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 13:15:08","page":1} 
[2026-10-03 13:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 13:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 13:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 13:30:07","page":1} 
[2026-10-03 13:45:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 13:45:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 14:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 13:45:07","page":1} 
[2026-10-03 14:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-03 13:00:13","window_to":"2026-10-03 14:00:13"} 
[2026-10-03 14:00:13] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 14:00:13] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 14:15:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 14:00:12","page":1} 
[2026-10-03 14:15:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 14:15:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 14:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 14:15:09","page":1} 
[2026-10-03 14:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 14:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 14:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 14:30:08","page":1} 
[2026-10-03 14:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 14:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 15:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-03 14:00:13","window_to":"2026-10-03 15:00:13"} 
[2026-10-03 15:00:14] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 14:45:08","page":1} 
[2026-10-03 15:00:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 15:00:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 15:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 15:00:13","page":1} 
[2026-10-03 15:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 15:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 15:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 15:15:07","page":1} 
[2026-10-03 15:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 15:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 15:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 15:30:09","page":1} 
[2026-10-03 15:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 15:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 16:00:13] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 15:45:07","page":1} 
[2026-10-03 16:00:13] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-03 15:00:13","window_to":"2026-10-03 16:00:13"} 
[2026-10-03 16:00:14] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 16:00:14] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 16:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 16:00:13","page":1} 
[2026-10-03 16:15:07] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 16:15:07] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 16:30:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 16:15:07","page":1} 
[2026-10-03 16:30:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 16:30:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 16:45:08] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 16:30:08","page":1} 
[2026-10-03 16:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 16:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 17:00:12] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 16:45:08","page":1} 
[2026-10-03 17:00:12] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-03 16:00:12","window_to":"2026-10-03 17:00:12"} 
[2026-10-03 17:00:12] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 17:00:12] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 17:15:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 17:00:12","page":1} 
[2026-10-03 17:15:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 17:15:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 17:30:09] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 17:15:07","page":1} 
[2026-10-03 17:30:09] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 17:30:09] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 17:45:07] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 17:30:09","page":1} 
[2026-10-03 17:45:08] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 17:45:08] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 18:00:26] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-03 17:00:25","window_to":"2026-10-03 18:00:25"} 
[2026-10-03 18:00:26] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 17:45:07","page":1} 
[2026-10-03 18:00:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 18:00:28] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 18:00:41] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-03 17:00:41","window_to":"2026-10-03 18:00:41"} 
[2026-10-03 18:15:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-03 17:15:22","window_to":"2026-10-03 18:15:22"} 
[2026-10-03 18:15:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 18:00:26","page":1} 
[2026-10-03 18:15:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 18:15:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 18:30:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 18:15:23","page":1} 
[2026-10-03 18:30:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-03 17:30:22","window_to":"2026-10-03 18:30:22"} 
[2026-10-03 18:30:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 18:30:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 18:45:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 18:30:22","page":1} 
[2026-10-03 18:45:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-03 17:45:22","window_to":"2026-10-03 18:45:22"} 
[2026-10-03 18:45:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 18:45:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 19:00:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-03 18:00:24","window_to":"2026-10-03 19:00:24"} 
[2026-10-03 19:00:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 18:45:21","page":1} 
[2026-10-03 19:00:28] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 19:00:28] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 19:00:48] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-03 18:00:47","window_to":"2026-10-03 19:00:48"} 
[2026-10-03 19:15:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-03 18:15:20","window_to":"2026-10-03 19:15:20"} 
[2026-10-03 19:15:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 19:00:25","page":1} 
[2026-10-03 19:15:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 19:15:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 19:30:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 19:15:21","page":1} 
[2026-10-03 19:30:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-03 18:30:22","window_to":"2026-10-03 19:30:22"} 
[2026-10-03 19:30:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 19:30:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 19:45:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-03 18:45:21","window_to":"2026-10-03 19:45:21"} 
[2026-10-03 19:45:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 19:30:21","page":1} 
[2026-10-03 19:45:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 19:45:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 20:00:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 19:45:21","page":1} 
[2026-10-03 20:00:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-03 19:00:24","window_to":"2026-10-03 20:00:25"} 
[2026-10-03 20:00:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 20:00:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 20:00:47] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-03 19:00:47","window_to":"2026-10-03 20:00:47"} 
[2026-10-03 20:15:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 20:00:24","page":1} 
[2026-10-03 20:15:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-03 19:15:21","window_to":"2026-10-03 20:15:21"} 
[2026-10-03 20:15:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 20:15:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 20:30:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 20:15:21","page":1} 
[2026-10-03 20:30:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-03 19:30:22","window_to":"2026-10-03 20:30:23"} 
[2026-10-03 20:30:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 20:30:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 20:45:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 20:30:23","page":1} 
[2026-10-03 20:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-03 19:45:19","window_to":"2026-10-03 20:45:19"} 
[2026-10-03 20:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 20:45:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 21:00:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-03 20:00:24","window_to":"2026-10-03 21:00:24"} 
[2026-10-03 21:00:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 20:45:20","page":1} 
[2026-10-03 21:00:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 21:00:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 21:00:46] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-03 20:00:46","window_to":"2026-10-03 21:00:46"} 
[2026-10-03 21:15:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 21:00:24","page":1} 
[2026-10-03 21:15:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-03 20:15:21","window_to":"2026-10-03 21:15:21"} 
[2026-10-03 21:15:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 21:15:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 21:30:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-03 20:30:22","window_to":"2026-10-03 21:30:22"} 
[2026-10-03 21:30:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 21:15:20","page":1} 
[2026-10-03 21:30:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 21:30:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 21:45:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 21:30:23","page":1} 
[2026-10-03 21:45:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-03 20:45:21","window_to":"2026-10-03 21:45:21"} 
[2026-10-03 21:45:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 21:45:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 22:00:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 21:45:21","page":1} 
[2026-10-03 22:00:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-03 21:00:23","window_to":"2026-10-03 22:00:24"} 
[2026-10-03 22:00:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 22:00:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 22:00:45] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-03 21:00:44","window_to":"2026-10-03 22:00:45"} 
[2026-10-03 22:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-03 21:15:18","window_to":"2026-10-03 22:15:18"} 
[2026-10-03 22:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 22:00:24","page":1} 
[2026-10-03 22:15:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 22:15:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 22:30:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-03 21:30:24","window_to":"2026-10-03 22:30:24"} 
[2026-10-03 22:30:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 22:15:19","page":1} 
[2026-10-03 22:30:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 22:30:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 22:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 22:30:24","page":1} 
[2026-10-03 22:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-03 21:45:20","window_to":"2026-10-03 22:45:20"} 
[2026-10-03 22:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 22:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 23:00:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-03 22:00:23","window_to":"2026-10-03 23:00:23"} 
[2026-10-03 23:00:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 22:45:19","page":1} 
[2026-10-03 23:00:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 23:00:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 23:00:43] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-03 22:00:43","window_to":"2026-10-03 23:00:43"} 
[2026-10-03 23:15:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 23:00:24","page":1} 
[2026-10-03 23:15:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-03 22:15:20","window_to":"2026-10-03 23:15:20"} 
[2026-10-03 23:15:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 23:15:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 23:30:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 23:15:20","page":1} 
[2026-10-03 23:30:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-03 22:30:22","window_to":"2026-10-03 23:30:22"} 
[2026-10-03 23:30:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 23:30:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-03 23:45:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 23:30:22","page":1} 
[2026-10-03 23:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-03 22:45:20","window_to":"2026-10-03 23:45:20"} 
[2026-10-03 23:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-03 23:45:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 00:00:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-03 23:45:20","page":1} 
[2026-10-04 00:00:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-03 23:00:23","window_to":"2026-10-04 00:00:23"} 
[2026-10-04 00:00:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 00:00:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 00:00:50] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_10_04_00_00_49.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-10-04 00:00:51] local.INFO: Student payment status check queued {"batches":1,"students":55} 
[2026-10-04 00:00:52] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-03 23:00:52","window_to":"2026-10-04 00:00:52"} 
[2026-10-04 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":5,"admission_no":"26/000001","outstanding_amount":24000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":13,"admission_no":"26/000009","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:00:57] local.INFO: Student payment status cron evaluated {"student_id":14,"admission_no":"26/000010","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:00:57] local.INFO: Student payment status cron evaluated {"student_id":16,"admission_no":"26/000012","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:00:58] local.INFO: Student payment status cron evaluated {"student_id":17,"admission_no":"26/000013","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:00:59] local.INFO: Student payment status cron evaluated {"student_id":20,"admission_no":"26/000016","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:00:59] local.INFO: Student payment status cron evaluated {"student_id":31,"admission_no":"26/000027","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:00] local.INFO: Student payment status cron evaluated {"student_id":32,"admission_no":"26/000028","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:00] local.INFO: Student payment status cron evaluated {"student_id":33,"admission_no":"26/000029","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:01] local.INFO: Student payment status cron evaluated {"student_id":34,"admission_no":"26/000030","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:02] local.INFO: Student payment status cron evaluated {"student_id":35,"admission_no":"26/000031","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:03] local.INFO: Student payment status cron evaluated {"student_id":23,"admission_no":"26/000019","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:04] local.INFO: Student payment status cron evaluated {"student_id":26,"admission_no":"26/000022","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:05] local.INFO: Student payment status cron evaluated {"student_id":28,"admission_no":"26/000024","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:06] local.INFO: Student payment status cron evaluated {"student_id":36,"admission_no":"26/000032","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:07] local.INFO: Student payment status cron evaluated {"student_id":37,"admission_no":"26/000033","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:08] local.INFO: Student payment status cron evaluated {"student_id":38,"admission_no":"26/000034","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:09] local.INFO: Student payment status cron evaluated {"student_id":39,"admission_no":"26/000035","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:10] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_10_04_00_00_49.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-10-04 00:01:10] local.INFO: Student payment status cron evaluated {"student_id":40,"admission_no":"26/000036","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:11] local.INFO: Student payment status cron evaluated {"student_id":43,"admission_no":"26/000039","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:11] local.INFO: Student payment status cron evaluated {"student_id":44,"admission_no":"26/000040","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:12] local.INFO: Student payment status cron evaluated {"student_id":45,"admission_no":"26/000041","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:15] local.INFO: Student payment status cron evaluated {"student_id":46,"admission_no":"26/000042","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:15] local.INFO: Student payment status cron evaluated {"student_id":47,"admission_no":"26/000043","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:16] local.INFO: Student payment status cron evaluated {"student_id":50,"admission_no":"26/000046","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:16] local.INFO: Student payment status cron evaluated {"student_id":51,"admission_no":"26/000047","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:17] local.INFO: Student payment status cron evaluated {"student_id":52,"admission_no":"26/000048","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:17] local.INFO: Student payment status cron evaluated {"student_id":53,"admission_no":"26/000049","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:18] local.INFO: Student payment status cron evaluated {"student_id":54,"admission_no":"26/000050","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:19] local.INFO: Student payment status cron evaluated {"student_id":55,"admission_no":"26/000051","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:19] local.INFO: Student payment status cron evaluated {"student_id":56,"admission_no":"26/000052","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:20] local.INFO: Student payment status cron evaluated {"student_id":57,"admission_no":"26/000053","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:21] local.INFO: Student payment status cron evaluated {"student_id":59,"admission_no":"26/000055","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:21] local.INFO: Student payment status cron evaluated {"student_id":61,"admission_no":"26/000057","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:22] local.INFO: Student payment status cron evaluated {"student_id":63,"admission_no":"26/000059","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:22] local.INFO: Student payment status cron evaluated {"student_id":64,"admission_no":"26/000060","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:22] local.INFO: Student payment status cron evaluated {"student_id":65,"admission_no":"26/000061","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:23] local.INFO: Student payment status cron evaluated {"student_id":66,"admission_no":"26/000062","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:23] local.INFO: Student payment status cron evaluated {"student_id":67,"admission_no":"26/000063","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:24] local.INFO: Student payment status cron evaluated {"student_id":68,"admission_no":"26/000064","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:24] local.INFO: Student payment status cron evaluated {"student_id":69,"admission_no":"26/000065","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:25] local.INFO: Student payment status cron evaluated {"student_id":70,"admission_no":"26/000066","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:25] local.INFO: Student payment status cron evaluated {"student_id":72,"admission_no":"26/000068","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:26] local.INFO: Student payment status cron evaluated {"student_id":73,"admission_no":"26/000069","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:26] local.INFO: Student payment status cron evaluated {"student_id":74,"admission_no":"26/000070","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:26] local.INFO: Student payment status cron evaluated {"student_id":75,"admission_no":"26/000071","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:26] local.INFO: Student payment status cron evaluated {"student_id":76,"admission_no":"26/000072","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:26] local.INFO: Student payment status cron evaluated {"student_id":77,"admission_no":"26/000073","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:26] local.INFO: Student payment status cron evaluated {"student_id":78,"admission_no":"26/000074","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:26] local.INFO: Student payment status cron evaluated {"student_id":80,"admission_no":"26/000076","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:26] local.INFO: Student payment status cron evaluated {"student_id":8,"admission_no":"26/000004","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:26] local.INFO: Student payment status cron evaluated {"student_id":9,"admission_no":"26/000005","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:26] local.INFO: Student payment status cron evaluated {"student_id":22,"admission_no":"26/000018","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:26] local.INFO: Student payment status cron evaluated {"student_id":79,"admission_no":"26/000075","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:01:26] local.INFO: Student payment status cron evaluated {"student_id":81,"admission_no":"26/000077","outstanding_amount":10000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-04 00:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-03 23:15:19","window_to":"2026-10-04 00:15:19"} 
[2026-10-04 00:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 00:00:23","page":1} 
[2026-10-04 00:15:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 00:15:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 00:30:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-03 23:30:22","window_to":"2026-10-04 00:30:22"} 
[2026-10-04 00:30:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 00:15:19","page":1} 
[2026-10-04 00:30:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 00:30:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 00:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-03 23:45:19","window_to":"2026-10-04 00:45:19"} 
[2026-10-04 00:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 00:30:23","page":1} 
[2026-10-04 00:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 00:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 01:00:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 00:45:19","page":1} 
[2026-10-04 01:00:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 00:00:22","window_to":"2026-10-04 01:00:23"} 
[2026-10-04 01:00:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 01:00:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 01:00:47] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-04 00:00:47","window_to":"2026-10-04 01:00:47"} 
[2026-10-04 01:15:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 01:00:23","page":1} 
[2026-10-04 01:15:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 00:15:20","window_to":"2026-10-04 01:15:20"} 
[2026-10-04 01:15:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 01:15:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 01:30:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 01:15:20","page":1} 
[2026-10-04 01:30:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 00:30:21","window_to":"2026-10-04 01:30:21"} 
[2026-10-04 01:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 01:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 01:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 01:30:21","page":1} 
[2026-10-04 01:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 01:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 01:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 00:45:19","window_to":"2026-10-04 01:45:19"} 
[2026-10-04 02:00:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 01:45:18","page":1} 
[2026-10-04 02:00:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 01:00:24","window_to":"2026-10-04 02:00:24"} 
[2026-10-04 02:00:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 02:00:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 02:00:46] local.INFO: JWT secrets rotated and runtime reloaded {"at":"2026-10-04 02:00:46"} 
[2026-10-04 02:00:47] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-04 01:00:46","window_to":"2026-10-04 02:00:46"} 
[2026-10-04 02:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 02:00:23","page":1} 
[2026-10-04 02:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 01:15:19","window_to":"2026-10-04 02:15:19"} 
[2026-10-04 02:15:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 02:15:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 02:30:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 01:30:21","window_to":"2026-10-04 02:30:22"} 
[2026-10-04 02:30:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 02:15:19","page":1} 
[2026-10-04 02:30:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 02:30:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 02:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 02:30:22","page":1} 
[2026-10-04 02:45:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 02:45:18] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 02:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 01:45:18","window_to":"2026-10-04 02:45:18"} 
[2026-10-04 03:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 02:45:17","page":1} 
[2026-10-04 03:00:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 02:00:22","window_to":"2026-10-04 03:00:22"} 
[2026-10-04 03:00:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 03:00:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 03:00:41] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-04 02:00:40","window_to":"2026-10-04 03:00:40"} 
[2026-10-04 03:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 03:00:22","page":1} 
[2026-10-04 03:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 02:15:18","window_to":"2026-10-04 03:15:18"} 
[2026-10-04 03:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 03:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 03:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 03:15:18","page":1} 
[2026-10-04 03:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 03:30:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 02:30:21","window_to":"2026-10-04 03:30:21"} 
[2026-10-04 03:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 03:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 03:30:20","page":1} 
[2026-10-04 03:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 02:45:18","window_to":"2026-10-04 03:45:19"} 
[2026-10-04 03:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 03:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 04:00:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 03:00:22","window_to":"2026-10-04 04:00:22"} 
[2026-10-04 04:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 03:45:19","page":1} 
[2026-10-04 04:00:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 04:00:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 04:00:40] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-04 03:00:39","window_to":"2026-10-04 04:00:39"} 
[2026-10-04 04:15:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 03:15:16","window_to":"2026-10-04 04:15:16"} 
[2026-10-04 04:15:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 04:00:22","page":1} 
[2026-10-04 04:15:18] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 04:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 04:30:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 04:15:17","page":1} 
[2026-10-04 04:30:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 03:30:21","window_to":"2026-10-04 04:30:21"} 
[2026-10-04 04:30:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 04:30:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 04:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 04:30:21","page":1} 
[2026-10-04 04:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 03:45:18","window_to":"2026-10-04 04:45:18"} 
[2026-10-04 04:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 04:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 05:00:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 04:45:18","page":1} 
[2026-10-04 05:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 04:00:21","window_to":"2026-10-04 05:00:21"} 
[2026-10-04 05:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 05:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 05:00:39] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-04 04:00:38","window_to":"2026-10-04 05:00:38"} 
[2026-10-04 05:15:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 04:15:21","window_to":"2026-10-04 05:15:21"} 
[2026-10-04 05:15:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 05:00:20","page":1} 
[2026-10-04 05:15:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 05:15:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 05:30:26] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 04:30:26","window_to":"2026-10-04 05:30:26"} 
[2026-10-04 05:30:27] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 05:15:22","page":1} 
[2026-10-04 05:30:28] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 05:30:29] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 05:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 05:30:27","page":1} 
[2026-10-04 05:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 04:45:19","window_to":"2026-10-04 05:45:19"} 
[2026-10-04 05:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 05:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 06:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 05:45:19","page":1} 
[2026-10-04 06:00:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 05:00:22","window_to":"2026-10-04 06:00:22"} 
[2026-10-04 06:00:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 06:00:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 06:00:39] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-04 05:00:39","window_to":"2026-10-04 06:00:39"} 
[2026-10-04 06:15:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 05:15:20","window_to":"2026-10-04 06:15:20"} 
[2026-10-04 06:15:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 06:00:22","page":1} 
[2026-10-04 06:15:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 06:15:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 06:30:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 05:30:21","window_to":"2026-10-04 06:30:21"} 
[2026-10-04 06:30:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 06:15:21","page":1} 
[2026-10-04 06:30:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 06:30:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 06:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 06:30:22","page":1} 
[2026-10-04 06:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 05:45:19","window_to":"2026-10-04 06:45:19"} 
[2026-10-04 06:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 06:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 07:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 06:45:19","page":1} 
[2026-10-04 07:00:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 06:00:22","window_to":"2026-10-04 07:00:22"} 
[2026-10-04 07:00:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 07:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 07:00:39] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-04 06:00:39","window_to":"2026-10-04 07:00:39"} 
[2026-10-04 07:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 07:00:21","page":1} 
[2026-10-04 07:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 06:15:19","window_to":"2026-10-04 07:15:19"} 
[2026-10-04 07:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 07:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 07:30:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 07:15:19","page":1} 
[2026-10-04 07:30:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 06:30:23","window_to":"2026-10-04 07:30:23"} 
[2026-10-04 07:30:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 07:30:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 07:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 07:30:23","page":1} 
[2026-10-04 07:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 07:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 06:45:19","window_to":"2026-10-04 07:45:20"} 
[2026-10-04 07:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 08:00:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 07:45:18","page":1} 
[2026-10-04 08:00:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 07:00:24","window_to":"2026-10-04 08:00:24"} 
[2026-10-04 08:00:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 08:00:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 08:00:44] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-04 07:00:44","window_to":"2026-10-04 08:00:44"} 
[2026-10-04 08:00:45] local.INFO: Payment reminders queued {"batches":1,"students":55} 
[2026-10-04 08:15:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 07:15:21","window_to":"2026-10-04 08:15:21"} 
[2026-10-04 08:15:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 08:00:24","page":1} 
[2026-10-04 08:15:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 08:15:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 08:30:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 08:15:22","page":1} 
[2026-10-04 08:30:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 07:30:23","window_to":"2026-10-04 08:30:23"} 
[2026-10-04 08:30:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 08:30:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 08:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 08:30:23","page":1} 
[2026-10-04 08:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 07:45:19","window_to":"2026-10-04 08:45:19"} 
[2026-10-04 08:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 08:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 09:00:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 08:00:24","window_to":"2026-10-04 09:00:25"} 
[2026-10-04 09:00:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 08:45:19","page":1} 
[2026-10-04 09:00:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 09:00:27] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 09:00:47] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-04 08:00:47","window_to":"2026-10-04 09:00:47"} 
[2026-10-04 09:15:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 08:15:20","window_to":"2026-10-04 09:15:20"} 
[2026-10-04 09:15:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 09:00:25","page":1} 
[2026-10-04 09:15:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 09:15:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 09:30:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 09:15:21","page":1} 
[2026-10-04 09:30:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 08:30:23","window_to":"2026-10-04 09:30:24"} 
[2026-10-04 09:30:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 09:30:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 09:45:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 08:45:21","window_to":"2026-10-04 09:45:21"} 
[2026-10-04 09:45:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 09:30:23","page":1} 
[2026-10-04 09:45:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 09:45:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 10:00:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 09:00:25","window_to":"2026-10-04 10:00:25"} 
[2026-10-04 10:00:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 09:45:21","page":1} 
[2026-10-04 10:00:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 10:00:28] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 10:00:48] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-04 09:00:47","window_to":"2026-10-04 10:00:47"} 
[2026-10-04 10:15:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 10:00:25","page":1} 
[2026-10-04 10:15:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 09:15:20","window_to":"2026-10-04 10:15:20"} 
[2026-10-04 10:15:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 10:15:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 10:30:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 09:30:23","window_to":"2026-10-04 10:30:23"} 
[2026-10-04 10:30:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 10:15:20","page":1} 
[2026-10-04 10:30:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 10:30:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 10:45:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 09:45:22","window_to":"2026-10-04 10:45:22"} 
[2026-10-04 10:45:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 10:30:24","page":1} 
[2026-10-04 10:45:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 10:45:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 11:00:26] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 10:45:23","page":1} 
[2026-10-04 11:00:26] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 10:00:26","window_to":"2026-10-04 11:00:26"} 
[2026-10-04 11:00:28] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 11:00:28] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 11:00:47] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-04 10:00:46","window_to":"2026-10-04 11:00:47"} 
[2026-10-04 11:15:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 11:00:26","page":1} 
[2026-10-04 11:15:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 10:15:20","window_to":"2026-10-04 11:15:20"} 
[2026-10-04 11:15:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 11:15:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 11:30:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 10:30:22","window_to":"2026-10-04 11:30:22"} 
[2026-10-04 11:30:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 11:15:20","page":1} 
[2026-10-04 11:30:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 11:30:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 11:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 11:30:24","page":1} 
[2026-10-04 11:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 10:45:20","window_to":"2026-10-04 11:45:20"} 
[2026-10-04 11:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 11:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 12:00:26] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 11:00:26","window_to":"2026-10-04 12:00:26"} 
[2026-10-04 12:00:27] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 11:45:19","page":1} 
[2026-10-04 12:00:29] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 12:00:29] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 12:00:47] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_10_04_12_00_47.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-10-04 12:00:48] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-04 11:00:47","window_to":"2026-10-04 12:00:47"} 
[2026-10-04 12:00:59] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_10_04_12_00_47.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-10-04 12:15:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 12:00:26","page":1} 
[2026-10-04 12:15:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 11:15:21","window_to":"2026-10-04 12:15:21"} 
[2026-10-04 12:15:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 12:15:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 12:30:26] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 12:15:20","page":1} 
[2026-10-04 12:30:26] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 11:30:26","window_to":"2026-10-04 12:30:26"} 
[2026-10-04 12:30:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 12:30:27] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 12:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 11:45:18","window_to":"2026-10-04 12:45:19"} 
[2026-10-04 12:45:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 12:30:26","page":1} 
[2026-10-04 12:45:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 12:45:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 13:00:26] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 12:00:25","window_to":"2026-10-04 13:00:25"} 
[2026-10-04 13:00:26] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 12:45:20","page":1} 
[2026-10-04 13:00:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 13:00:28] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 13:00:49] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-04 12:00:49","window_to":"2026-10-04 13:00:49"} 
[2026-10-04 13:15:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 12:15:21","window_to":"2026-10-04 13:15:21"} 
[2026-10-04 13:15:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 13:00:26","page":1} 
[2026-10-04 13:15:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 13:15:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 13:30:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 13:15:23","page":1} 
[2026-10-04 13:30:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 12:30:25","window_to":"2026-10-04 13:30:25"} 
[2026-10-04 13:30:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 13:30:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 13:45:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 13:30:24","page":1} 
[2026-10-04 13:45:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 12:45:21","window_to":"2026-10-04 13:45:21"} 
[2026-10-04 13:45:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 13:45:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 14:00:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 13:45:21","page":1} 
[2026-10-04 14:00:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 13:00:24","window_to":"2026-10-04 14:00:24"} 
[2026-10-04 14:00:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 14:00:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 14:00:48] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-04 13:00:47","window_to":"2026-10-04 14:00:47"} 
[2026-10-04 14:15:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 13:15:22","window_to":"2026-10-04 14:15:22"} 
[2026-10-04 14:15:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 14:00:24","page":1} 
[2026-10-04 14:15:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 14:15:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 14:30:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 14:15:23","page":1} 
[2026-10-04 14:30:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 13:30:23","window_to":"2026-10-04 14:30:23"} 
[2026-10-04 14:30:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 14:30:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 14:45:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 13:45:23","window_to":"2026-10-04 14:45:23"} 
[2026-10-04 14:45:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 14:30:23","page":1} 
[2026-10-04 14:45:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 14:45:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 15:00:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 14:45:24","page":1} 
[2026-10-04 15:00:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 14:00:22","window_to":"2026-10-04 15:00:22"} 
[2026-10-04 15:00:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 15:00:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 15:00:46] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-04 14:00:45","window_to":"2026-10-04 15:00:45"} 
[2026-10-04 15:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 15:00:22","page":1} 
[2026-10-04 15:15:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 14:15:19","window_to":"2026-10-04 15:15:19"} 
[2026-10-04 15:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 15:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 15:30:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 14:30:23","window_to":"2026-10-04 15:30:23"} 
[2026-10-04 15:30:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 15:15:19","page":1} 
[2026-10-04 15:30:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 15:30:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 15:45:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 15:30:24","page":1} 
[2026-10-04 15:45:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 14:45:24","window_to":"2026-10-04 15:45:24"} 
[2026-10-04 15:45:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 15:45:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 16:00:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 15:45:23","page":1} 
[2026-10-04 16:00:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 15:00:24","window_to":"2026-10-04 16:00:24"} 
[2026-10-04 16:00:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 16:00:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 16:00:44] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-04 15:00:44","window_to":"2026-10-04 16:00:44"} 
[2026-10-04 16:15:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 15:15:20","window_to":"2026-10-04 16:15:20"} 
[2026-10-04 16:15:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 16:00:24","page":1} 
[2026-10-04 16:15:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 16:15:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 16:30:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 15:30:22","window_to":"2026-10-04 16:30:22"} 
[2026-10-04 16:30:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 16:15:21","page":1} 
[2026-10-04 16:30:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 16:30:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 16:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 15:45:19","window_to":"2026-10-04 16:45:19"} 
[2026-10-04 16:45:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 16:30:23","page":1} 
[2026-10-04 16:45:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 16:45:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 17:00:26] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 16:45:21","page":1} 
[2026-10-04 17:00:27] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 16:00:26","window_to":"2026-10-04 17:00:27"} 
[2026-10-04 17:00:28] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 17:00:29] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 17:00:48] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-04 16:00:47","window_to":"2026-10-04 17:00:47"} 
[2026-10-04 17:15:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 16:15:20","window_to":"2026-10-04 17:15:20"} 
[2026-10-04 17:15:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 17:00:26","page":1} 
[2026-10-04 17:15:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 17:15:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 17:30:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 16:30:23","window_to":"2026-10-04 17:30:23"} 
[2026-10-04 17:30:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 17:15:21","page":1} 
[2026-10-04 17:30:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 17:30:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 17:45:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 16:45:22","window_to":"2026-10-04 17:45:22"} 
[2026-10-04 17:45:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 17:30:24","page":1} 
[2026-10-04 17:45:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 17:45:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 18:00:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 17:00:24","window_to":"2026-10-04 18:00:24"} 
[2026-10-04 18:00:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 17:45:24","page":1} 
[2026-10-04 18:00:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 18:00:27] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 18:00:44] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-04 17:00:44","window_to":"2026-10-04 18:00:44"} 
[2026-10-04 18:15:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 17:15:22","window_to":"2026-10-04 18:15:22"} 
[2026-10-04 18:15:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 18:00:25","page":1} 
[2026-10-04 18:15:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 18:15:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 18:30:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 18:15:23","page":1} 
[2026-10-04 18:30:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 17:30:23","window_to":"2026-10-04 18:30:23"} 
[2026-10-04 18:30:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 18:30:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 18:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 17:45:20","window_to":"2026-10-04 18:45:20"} 
[2026-10-04 18:45:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 18:30:23","page":1} 
[2026-10-04 18:45:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 18:45:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 19:00:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 18:45:21","page":1} 
[2026-10-04 19:00:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 18:00:23","window_to":"2026-10-04 19:00:24"} 
[2026-10-04 19:00:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 19:00:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 19:00:43] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-04 18:00:43","window_to":"2026-10-04 19:00:43"} 
[2026-10-04 19:15:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 19:00:24","page":1} 
[2026-10-04 19:15:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 18:15:20","window_to":"2026-10-04 19:15:21"} 
[2026-10-04 19:15:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 19:15:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 19:30:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 19:15:21","page":1} 
[2026-10-04 19:30:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 18:30:22","window_to":"2026-10-04 19:30:22"} 
[2026-10-04 19:30:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 19:30:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 19:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 18:45:20","window_to":"2026-10-04 19:45:20"} 
[2026-10-04 19:45:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 19:30:22","page":1} 
[2026-10-04 19:45:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 19:45:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 20:00:26] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 19:45:21","page":1} 
[2026-10-04 20:00:26] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 19:00:26","window_to":"2026-10-04 20:00:26"} 
[2026-10-04 20:00:29] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 20:00:30] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 20:00:50] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-04 19:00:50","window_to":"2026-10-04 20:00:50"} 
[2026-10-04 20:15:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 20:00:26","page":1} 
[2026-10-04 20:15:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 19:15:22","window_to":"2026-10-04 20:15:22"} 
[2026-10-04 20:15:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 20:15:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 20:30:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 20:15:22","page":1} 
[2026-10-04 20:30:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 19:30:24","window_to":"2026-10-04 20:30:24"} 
[2026-10-04 20:30:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 20:30:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 20:45:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 20:30:24","page":1} 
[2026-10-04 20:45:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 19:45:22","window_to":"2026-10-04 20:45:23"} 
[2026-10-04 20:45:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 20:45:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 21:00:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 20:45:22","page":1} 
[2026-10-04 21:00:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 20:00:24","window_to":"2026-10-04 21:00:25"} 
[2026-10-04 21:00:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 21:00:27] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 21:00:46] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-04 20:00:46","window_to":"2026-10-04 21:00:46"} 
[2026-10-04 21:15:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 21:00:25","page":1} 
[2026-10-04 21:15:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 20:15:22","window_to":"2026-10-04 21:15:22"} 
[2026-10-04 21:15:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 21:15:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 21:30:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 21:15:21","page":1} 
[2026-10-04 21:30:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 20:30:23","window_to":"2026-10-04 21:30:23"} 
[2026-10-04 21:30:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 21:30:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 21:45:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 21:30:23","page":1} 
[2026-10-04 21:45:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 20:45:20","window_to":"2026-10-04 21:45:21"} 
[2026-10-04 21:45:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 21:45:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 22:00:26] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 21:45:21","page":1} 
[2026-10-04 22:00:27] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 21:00:26","window_to":"2026-10-04 22:00:26"} 
[2026-10-04 22:00:28] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 22:00:29] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 22:00:51] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-04 21:00:51","window_to":"2026-10-04 22:00:51"} 
[2026-10-04 22:15:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 22:00:26","page":1} 
[2026-10-04 22:15:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 21:15:22","window_to":"2026-10-04 22:15:22"} 
[2026-10-04 22:15:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 22:15:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 22:30:26] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 21:30:25","window_to":"2026-10-04 22:30:25"} 
[2026-10-04 22:30:26] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 22:15:22","page":1} 
[2026-10-04 22:30:28] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 22:30:28] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 22:45:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 21:45:21","window_to":"2026-10-04 22:45:21"} 
[2026-10-04 22:45:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 22:30:26","page":1} 
[2026-10-04 22:45:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 22:45:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 23:00:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 22:00:24","window_to":"2026-10-04 23:00:24"} 
[2026-10-04 23:00:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 22:45:22","page":1} 
[2026-10-04 23:00:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 23:00:28] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 23:00:46] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-04 22:00:46","window_to":"2026-10-04 23:00:46"} 
[2026-10-04 23:15:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 22:15:20","window_to":"2026-10-04 23:15:20"} 
[2026-10-04 23:15:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 23:00:25","page":1} 
[2026-10-04 23:15:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 23:15:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 23:30:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 23:15:21","page":1} 
[2026-10-04 23:30:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 22:30:22","window_to":"2026-10-04 23:30:22"} 
[2026-10-04 23:30:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 23:30:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-04 23:45:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 23:30:22","page":1} 
[2026-10-04 23:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 22:45:20","window_to":"2026-10-04 23:45:20"} 
[2026-10-04 23:45:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-04 23:45:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 00:00:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 23:00:23","window_to":"2026-10-05 00:00:23"} 
[2026-10-05 00:00:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-04 23:45:20","page":1} 
[2026-10-05 00:00:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 00:00:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 00:00:52] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_10_05_00_00_52.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-10-05 00:00:53] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-04 23:00:52","window_to":"2026-10-05 00:00:52"} 
[2026-10-05 00:00:54] local.INFO: Student payment status check queued {"batches":1,"students":55} 
[2026-10-05 00:00:59] local.INFO: Student payment status cron evaluated {"student_id":5,"admission_no":"26/000001","outstanding_amount":24000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:00:59] local.INFO: Student payment status cron evaluated {"student_id":13,"admission_no":"26/000009","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:00] local.INFO: Student payment status cron evaluated {"student_id":14,"admission_no":"26/000010","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:01] local.INFO: Student payment status cron evaluated {"student_id":16,"admission_no":"26/000012","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:02] local.INFO: Student payment status cron evaluated {"student_id":17,"admission_no":"26/000013","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:04] local.INFO: Student payment status cron evaluated {"student_id":20,"admission_no":"26/000016","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:05] local.INFO: Student payment status cron evaluated {"student_id":31,"admission_no":"26/000027","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:06] local.INFO: Student payment status cron evaluated {"student_id":32,"admission_no":"26/000028","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:06] local.INFO: Student payment status cron evaluated {"student_id":33,"admission_no":"26/000029","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:07] local.INFO: Student payment status cron evaluated {"student_id":34,"admission_no":"26/000030","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:08] local.INFO: Student payment status cron evaluated {"student_id":35,"admission_no":"26/000031","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:09] local.INFO: Student payment status cron evaluated {"student_id":23,"admission_no":"26/000019","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:10] local.INFO: Student payment status cron evaluated {"student_id":26,"admission_no":"26/000022","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:11] local.INFO: Student payment status cron evaluated {"student_id":28,"admission_no":"26/000024","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:11] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_10_05_00_00_52.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-10-05 00:01:12] local.INFO: Student payment status cron evaluated {"student_id":36,"admission_no":"26/000032","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:12] local.INFO: Student payment status cron evaluated {"student_id":37,"admission_no":"26/000033","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:13] local.INFO: Student payment status cron evaluated {"student_id":38,"admission_no":"26/000034","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:13] local.INFO: Student payment status cron evaluated {"student_id":39,"admission_no":"26/000035","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:14] local.INFO: Student payment status cron evaluated {"student_id":40,"admission_no":"26/000036","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:15] local.INFO: Student payment status cron evaluated {"student_id":43,"admission_no":"26/000039","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:15] local.INFO: Student payment status cron evaluated {"student_id":44,"admission_no":"26/000040","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:16] local.INFO: Student payment status cron evaluated {"student_id":45,"admission_no":"26/000041","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:17] local.INFO: Student payment status cron evaluated {"student_id":46,"admission_no":"26/000042","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:18] local.INFO: Student payment status cron evaluated {"student_id":47,"admission_no":"26/000043","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:18] local.INFO: Student payment status cron evaluated {"student_id":50,"admission_no":"26/000046","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:19] local.INFO: Student payment status cron evaluated {"student_id":51,"admission_no":"26/000047","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:20] local.INFO: Student payment status cron evaluated {"student_id":52,"admission_no":"26/000048","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:20] local.INFO: Student payment status cron evaluated {"student_id":53,"admission_no":"26/000049","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:21] local.INFO: Student payment status cron evaluated {"student_id":54,"admission_no":"26/000050","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:21] local.INFO: Student payment status cron evaluated {"student_id":55,"admission_no":"26/000051","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:21] local.INFO: Student payment status cron evaluated {"student_id":56,"admission_no":"26/000052","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:22] local.INFO: Student payment status cron evaluated {"student_id":57,"admission_no":"26/000053","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:22] local.INFO: Student payment status cron evaluated {"student_id":59,"admission_no":"26/000055","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:23] local.INFO: Student payment status cron evaluated {"student_id":61,"admission_no":"26/000057","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:23] local.INFO: Student payment status cron evaluated {"student_id":63,"admission_no":"26/000059","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:24] local.INFO: Student payment status cron evaluated {"student_id":64,"admission_no":"26/000060","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:24] local.INFO: Student payment status cron evaluated {"student_id":65,"admission_no":"26/000061","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:25] local.INFO: Student payment status cron evaluated {"student_id":66,"admission_no":"26/000062","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:25] local.INFO: Student payment status cron evaluated {"student_id":67,"admission_no":"26/000063","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:26] local.INFO: Student payment status cron evaluated {"student_id":68,"admission_no":"26/000064","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:26] local.INFO: Student payment status cron evaluated {"student_id":69,"admission_no":"26/000065","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:27] local.INFO: Student payment status cron evaluated {"student_id":70,"admission_no":"26/000066","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:27] local.INFO: Student payment status cron evaluated {"student_id":72,"admission_no":"26/000068","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:27] local.INFO: Student payment status cron evaluated {"student_id":73,"admission_no":"26/000069","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:28] local.INFO: Student payment status cron evaluated {"student_id":74,"admission_no":"26/000070","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:28] local.INFO: Student payment status cron evaluated {"student_id":75,"admission_no":"26/000071","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:28] local.INFO: Student payment status cron evaluated {"student_id":76,"admission_no":"26/000072","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:28] local.INFO: Student payment status cron evaluated {"student_id":77,"admission_no":"26/000073","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:28] local.INFO: Student payment status cron evaluated {"student_id":78,"admission_no":"26/000074","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:28] local.INFO: Student payment status cron evaluated {"student_id":80,"admission_no":"26/000076","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:28] local.INFO: Student payment status cron evaluated {"student_id":8,"admission_no":"26/000004","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:28] local.INFO: Student payment status cron evaluated {"student_id":9,"admission_no":"26/000005","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:28] local.INFO: Student payment status cron evaluated {"student_id":22,"admission_no":"26/000018","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:28] local.INFO: Student payment status cron evaluated {"student_id":79,"admission_no":"26/000075","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:01:28] local.INFO: Student payment status cron evaluated {"student_id":81,"admission_no":"26/000077","outstanding_amount":10000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-05 00:15:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 23:15:20","window_to":"2026-10-05 00:15:21"} 
[2026-10-05 00:15:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 00:00:24","page":1} 
[2026-10-05 00:15:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 00:15:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 00:30:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 00:15:21","page":1} 
[2026-10-05 00:30:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 23:30:23","window_to":"2026-10-05 00:30:24"} 
[2026-10-05 00:30:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 00:30:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 00:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-04 23:45:19","window_to":"2026-10-05 00:45:20"} 
[2026-10-05 00:45:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 00:30:23","page":1} 
[2026-10-05 00:45:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 00:45:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 01:00:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 00:45:20","page":1} 
[2026-10-05 01:00:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 00:00:25","window_to":"2026-10-05 01:00:25"} 
[2026-10-05 01:00:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 01:00:28] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 01:00:49] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-05 00:00:48","window_to":"2026-10-05 01:00:48"} 
[2026-10-05 01:15:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 01:00:25","page":1} 
[2026-10-05 01:15:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 00:15:21","window_to":"2026-10-05 01:15:21"} 
[2026-10-05 01:15:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 01:15:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 01:30:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 00:30:22","window_to":"2026-10-05 01:30:22"} 
[2026-10-05 01:30:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 01:15:21","page":1} 
[2026-10-05 01:30:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 01:30:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 01:45:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 01:30:22","page":1} 
[2026-10-05 01:45:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 00:45:20","window_to":"2026-10-05 01:45:20"} 
[2026-10-05 01:45:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 01:45:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 02:00:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 01:45:20","page":1} 
[2026-10-05 02:00:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 01:00:24","window_to":"2026-10-05 02:00:24"} 
[2026-10-05 02:00:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 02:00:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 02:00:44] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-05 01:00:44","window_to":"2026-10-05 02:00:44"} 
[2026-10-05 02:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 01:15:18","window_to":"2026-10-05 02:15:18"} 
[2026-10-05 02:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 02:00:24","page":1} 
[2026-10-05 02:15:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 02:15:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 02:30:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 01:30:24","window_to":"2026-10-05 02:30:24"} 
[2026-10-05 02:30:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 02:15:19","page":1} 
[2026-10-05 02:30:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 02:30:27] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 02:45:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 02:30:25","page":1} 
[2026-10-05 02:45:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 01:45:20","window_to":"2026-10-05 02:45:21"} 
[2026-10-05 02:45:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 02:45:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 03:00:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 02:45:20","page":1} 
[2026-10-05 03:00:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 02:00:24","window_to":"2026-10-05 03:00:24"} 
[2026-10-05 03:00:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 03:00:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 03:00:45] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-05 02:00:45","window_to":"2026-10-05 03:00:45"} 
[2026-10-05 03:15:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 03:00:24","page":1} 
[2026-10-05 03:15:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 02:15:21","window_to":"2026-10-05 03:15:21"} 
[2026-10-05 03:15:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 03:15:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 03:30:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 03:15:21","page":1} 
[2026-10-05 03:30:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 02:30:23","window_to":"2026-10-05 03:30:23"} 
[2026-10-05 03:30:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 03:30:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 03:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 02:45:18","window_to":"2026-10-05 03:45:18"} 
[2026-10-05 03:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 03:30:23","page":1} 
[2026-10-05 03:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 03:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 04:00:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 03:45:19","page":1} 
[2026-10-05 04:00:26] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 03:00:25","window_to":"2026-10-05 04:00:25"} 
[2026-10-05 04:00:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 04:00:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 04:00:44] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-05 03:00:44","window_to":"2026-10-05 04:00:44"} 
[2026-10-05 04:15:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 03:15:20","window_to":"2026-10-05 04:15:20"} 
[2026-10-05 04:15:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 04:00:24","page":1} 
[2026-10-05 04:15:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 04:15:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 04:30:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 04:15:21","page":1} 
[2026-10-05 04:30:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 03:30:22","window_to":"2026-10-05 04:30:22"} 
[2026-10-05 04:30:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 04:30:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 04:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 04:30:22","page":1} 
[2026-10-05 04:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 03:45:19","window_to":"2026-10-05 04:45:20"} 
[2026-10-05 04:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 04:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 05:00:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 04:45:19","page":1} 
[2026-10-05 05:00:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 04:00:25","window_to":"2026-10-05 05:00:25"} 
[2026-10-05 05:00:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 05:00:27] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 05:00:43] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-05 04:00:42","window_to":"2026-10-05 05:00:43"} 
[2026-10-05 05:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 04:15:19","window_to":"2026-10-05 05:15:19"} 
[2026-10-05 05:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 05:00:24","page":1} 
[2026-10-05 05:15:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 05:15:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 05:30:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 04:30:25","window_to":"2026-10-05 05:30:25"} 
[2026-10-05 05:30:27] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 05:15:19","page":1} 
[2026-10-05 05:30:28] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 05:30:29] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 05:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 04:45:19","window_to":"2026-10-05 05:45:19"} 
[2026-10-05 05:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 05:30:27","page":1} 
[2026-10-05 05:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 05:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 06:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 05:45:19","page":1} 
[2026-10-05 06:00:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 05:00:22","window_to":"2026-10-05 06:00:22"} 
[2026-10-05 06:00:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 06:00:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 06:00:42] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-05 05:00:42","window_to":"2026-10-05 06:00:42"} 
[2026-10-05 06:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 05:15:19","window_to":"2026-10-05 06:15:19"} 
[2026-10-05 06:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 06:00:22","page":1} 
[2026-10-05 06:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 06:15:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 06:30:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 05:30:22","window_to":"2026-10-05 06:30:22"} 
[2026-10-05 06:30:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 06:15:19","page":1} 
[2026-10-05 06:30:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 06:30:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 06:45:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 06:30:23","page":1} 
[2026-10-05 06:45:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 06:45:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 06:45:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 05:45:23","window_to":"2026-10-05 06:45:23"} 
[2026-10-05 07:00:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 06:45:21","page":1} 
[2026-10-05 07:00:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 06:00:24","window_to":"2026-10-05 07:00:25"} 
[2026-10-05 07:00:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 07:00:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 07:00:44] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-05 06:00:44","window_to":"2026-10-05 07:00:44"} 
[2026-10-05 07:15:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 06:15:22","window_to":"2026-10-05 07:15:22"} 
[2026-10-05 07:15:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 07:00:24","page":1} 
[2026-10-05 07:15:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 07:15:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 07:30:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 07:15:23","page":1} 
[2026-10-05 07:30:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 07:30:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 06:30:23","window_to":"2026-10-05 07:30:23"} 
[2026-10-05 07:30:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 07:45:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 07:30:22","page":1} 
[2026-10-05 07:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 06:45:19","window_to":"2026-10-05 07:45:20"} 
[2026-10-05 07:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 07:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 08:00:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 07:00:23","window_to":"2026-10-05 08:00:23"} 
[2026-10-05 08:00:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 07:45:20","page":1} 
[2026-10-05 08:00:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 08:00:27] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 08:00:45] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-05 07:00:43","window_to":"2026-10-05 08:00:44"} 
[2026-10-05 08:00:46] local.INFO: Payment reminders queued {"batches":1,"students":55} 
[2026-10-05 08:15:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 07:15:20","window_to":"2026-10-05 08:15:21"} 
[2026-10-05 08:15:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 08:00:24","page":1} 
[2026-10-05 08:15:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 08:15:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 08:30:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 08:15:21","page":1} 
[2026-10-05 08:30:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 07:30:23","window_to":"2026-10-05 08:30:23"} 
[2026-10-05 08:30:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 08:30:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 08:45:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 08:30:23","page":1} 
[2026-10-05 08:45:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 07:45:21","window_to":"2026-10-05 08:45:21"} 
[2026-10-05 08:45:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 08:45:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 09:00:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 08:00:23","window_to":"2026-10-05 09:00:23"} 
[2026-10-05 09:00:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 08:45:21","page":1} 
[2026-10-05 09:00:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 09:00:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 09:00:43] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-05 08:00:42","window_to":"2026-10-05 09:00:42"} 
[2026-10-05 09:15:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 09:00:24","page":1} 
[2026-10-05 09:15:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 08:15:20","window_to":"2026-10-05 09:15:20"} 
[2026-10-05 09:15:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 09:15:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 09:30:26] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 09:15:20","page":1} 
[2026-10-05 09:30:27] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 08:30:26","window_to":"2026-10-05 09:30:26"} 
[2026-10-05 09:30:28] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 09:30:28] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 09:45:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 09:30:26","page":1} 
[2026-10-05 09:45:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 08:45:23","window_to":"2026-10-05 09:45:23"} 
[2026-10-05 09:45:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 09:45:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 10:00:27] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 09:45:22","page":1} 
[2026-10-05 10:00:28] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 09:00:27","window_to":"2026-10-05 10:00:27"} 
[2026-10-05 10:00:29] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 10:00:30] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 10:00:51] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-05 09:00:51","window_to":"2026-10-05 10:00:51"} 
[2026-10-05 10:15:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 10:00:27","page":1} 
[2026-10-05 10:15:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 09:15:24","window_to":"2026-10-05 10:15:24"} 
[2026-10-05 10:15:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 10:15:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 10:30:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 09:30:23","window_to":"2026-10-05 10:30:23"} 
[2026-10-05 10:30:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 10:15:24","page":1} 
[2026-10-05 10:30:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 10:30:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 10:45:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 10:30:24","page":1} 
[2026-10-05 10:45:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 09:45:22","window_to":"2026-10-05 10:45:23"} 
[2026-10-05 10:45:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 10:45:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 11:00:27] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 10:45:22","page":1} 
[2026-10-05 11:00:27] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 10:00:26","window_to":"2026-10-05 11:00:27"} 
[2026-10-05 11:00:30] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 11:00:30] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 11:00:52] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-05 10:00:51","window_to":"2026-10-05 11:00:51"} 
[2026-10-05 11:15:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 11:00:27","page":1} 
[2026-10-05 11:15:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 10:15:22","window_to":"2026-10-05 11:15:22"} 
[2026-10-05 11:15:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 11:15:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 11:30:28] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 11:15:22","page":1} 
[2026-10-05 11:30:29] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 10:30:28","window_to":"2026-10-05 11:30:29"} 
[2026-10-05 11:30:29] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 11:30:30] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 11:45:26] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 10:45:25","window_to":"2026-10-05 11:45:25"} 
[2026-10-05 11:45:26] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 11:30:27","page":1} 
[2026-10-05 11:45:28] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 11:45:28] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 11:55:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 11:55:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 11:55:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 11:56:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 11:56:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 11:57:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 11:57:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 11:58:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 11:58:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 11:59:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 11:59:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:00:29] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 11:00:28","window_to":"2026-10-05 12:00:28"} 
[2026-10-05 12:00:29] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 11:45:26","page":1} 
[2026-10-05 12:00:32] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 12:00:33] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 12:00:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:00:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:00:59] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_10_05_12_00_58.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-10-05 12:00:59] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-05 11:00:58","window_to":"2026-10-05 12:00:59"} 
[2026-10-05 12:01:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:01:18] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_10_05_12_00_58.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-10-05 12:01:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:01:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:02:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:02:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:03:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:03:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:04:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:04:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:05:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:05:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:06:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:06:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:07:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:07:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:08:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:08:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:09:06] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:09:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:09:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:09:47] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:10:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:10:36] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/intakes","user_id":11,"user_reg_no":"STF001003","permissions":["academic.batches.intakes.view"],"permission_ids":[1344]} 
[2026-10-05 12:10:37] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/intakes","user_id":11,"user_reg_no":"STF001003","permissions":["academic.batches.intakes.view"],"permission_ids":[1344]} 
[2026-10-05 12:10:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:10:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:11:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:11:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:11:22] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1"}  
[2026-10-05 12:11:22] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null,"branch_id":"4"}  
[2026-10-05 12:11:22] local.INFO: applyStudentFilters branch_id: 4  
[2026-10-05 12:11:28] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","program":"12"}  
[2026-10-05 12:11:28] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","program":"10"}  
[2026-10-05 12:11:28] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","program":"8"}  
[2026-10-05 12:11:28] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","program":"7"}  
[2026-10-05 12:11:29] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","program":"6"}  
[2026-10-05 12:11:31] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","program":"11"}  
[2026-10-05 12:11:32] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","program":"4"}  
[2026-10-05 12:11:32] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","program":"5"}  
[2026-10-05 12:11:32] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","program":"3"}  
[2026-10-05 12:11:32] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","program":"9"}  
[2026-10-05 12:11:33] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","program":"13"}  
[2026-10-05 12:11:34] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"5","sort_by":"created_at","sort_order":"desc"}  
[2026-10-05 12:12:04] local.ERROR: Error retrieving complete dashboard data: SQLSTATE[42703]: Undefined column: 7 ERROR:  column "branch_id" does not exist
LINE 1: ... "students"."id" = "enrollments"."student_id" and "branch_id...
                                                             ^ (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select count(*) as aggregate from "call_logs" where "created_at" between 2026-10-01 00:00:00 and 2026-10-31 23:59:59 and (exists (select * from "leads" where "call_logs"."lead_id" = "leads"."id" and "requested_branch" = 4 and "leads"."requested_branch" = 4 and "leads"."deleted_at" is null) or exists (select * from "students" where "call_logs"."student_id" = "students"."id" and exists (select * from "enrollments" where "students"."id" = "enrollments"."student_id" and "branch_id" = 4 and "enrollments"."deleted_at" is null) and ("students"."requested_branch" = 4 or exists (select * from "enrollments" where "students"."id" = "enrollments"."student_id" and exists (select * from "enrollments_details" where "enrollments"."id" = "enrollments_details"."enrollments_id" and ("enrollments_details"."branch_id" = 4 or exists (select * from "batches" where "enrollments_details"."batch_id" = "batches"."id" and "batches"."branch_id" = 4 and "batches"."deleted_at" is null)) and "enrollments_details"."deleted_at" is null) and "enrollments"."deleted_at" is null) or exists (select * from "enrollments" where "students"."id" = "enrollments"."student_id" and exists (select * from "enrollments_details" where "enrollments"."id" = "enrollments_details"."enrollments_id" and ("enrollments_details"."branch_id" = 4 or exists (select * from "batches" where "enrollments_details"."batch_id" = "batches"."id" and "batches"."branch_id" = 4 and "batches"."deleted_at" is null)) and "status" = active and "enrollments_details"."deleted_at" is null) and "enrollments"."deleted_at" is null)) and "students"."deleted_at" is null) or exists (select * from "users" where "call_logs"."created_by" = "users"."id" and "branch_id" = 4 and "users"."branch_id" = 4 and "users"."deleted_at" is null)) and "call_logs"."deleted_at" is null)  
[2026-10-05 12:12:13] local.ERROR: Error retrieving complete dashboard data: SQLSTATE[42703]: Undefined column: 7 ERROR:  column "branch_id" does not exist
LINE 1: ... "students"."id" = "enrollments"."student_id" and "branch_id...
                                                             ^ (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select count(*) as aggregate from "call_logs" where "created_at" between 2026-10-01 00:00:00 and 2026-10-31 23:59:59 and (exists (select * from "leads" where "call_logs"."lead_id" = "leads"."id" and "requested_branch" = 4 and "leads"."requested_branch" = 4 and "leads"."deleted_at" is null) or exists (select * from "students" where "call_logs"."student_id" = "students"."id" and exists (select * from "enrollments" where "students"."id" = "enrollments"."student_id" and "branch_id" = 4 and "enrollments"."deleted_at" is null) and ("students"."requested_branch" = 4 or exists (select * from "enrollments" where "students"."id" = "enrollments"."student_id" and exists (select * from "enrollments_details" where "enrollments"."id" = "enrollments_details"."enrollments_id" and ("enrollments_details"."branch_id" = 4 or exists (select * from "batches" where "enrollments_details"."batch_id" = "batches"."id" and "batches"."branch_id" = 4 and "batches"."deleted_at" is null)) and "enrollments_details"."deleted_at" is null) and "enrollments"."deleted_at" is null) or exists (select * from "enrollments" where "students"."id" = "enrollments"."student_id" and exists (select * from "enrollments_details" where "enrollments"."id" = "enrollments_details"."enrollments_id" and ("enrollments_details"."branch_id" = 4 or exists (select * from "batches" where "enrollments_details"."batch_id" = "batches"."id" and "batches"."branch_id" = 4 and "batches"."deleted_at" is null)) and "status" = active and "enrollments_details"."deleted_at" is null) and "enrollments"."deleted_at" is null)) and "students"."deleted_at" is null) or exists (select * from "users" where "call_logs"."created_by" = "users"."id" and "branch_id" = 4 and "users"."branch_id" = 4 and "users"."deleted_at" is null)) and "call_logs"."deleted_at" is null)  
[2026-10-05 12:12:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:12:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:12:54] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/intakes","user_id":11,"user_reg_no":"STF001003","permissions":["academic.batches.intakes.view"],"permission_ids":[1344]} 
[2026-10-05 12:13:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:13:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:14:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:14:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:15:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 11:15:24","window_to":"2026-10-05 12:15:24"} 
[2026-10-05 12:15:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 12:00:29","page":1} 
[2026-10-05 12:15:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 12:15:27] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 12:15:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:15:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:16:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:16:00] local.INFO: No FCM tokens found for user {"notification_id":71,"user_id":11} 
[2026-10-05 12:16:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:16:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:16:44] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/programs/13","user_id":11,"user_reg_no":"STF001003","permissions":["academic.programs.view_detail"],"permission_ids":[300]} 
[2026-10-05 12:17:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:17:29] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/document-type-configs","user_id":11,"user_reg_no":"STF001003","permissions":["documents.type_config.view"],"permission_ids":[954]} 
[2026-10-05 12:17:35] local.INFO: Registration Number Generation {"useBatchCode":false,"batchId":3,"env_value":null} 
[2026-10-05 12:17:35] local.ERROR: No fee plan found for batch ID: 3. Fee plan assignment is required for student enrollment. {"batch_id":3,"enrollments_id":114,"student_id":82} 
[2026-10-05 12:17:35] local.ERROR: Fee plan assignment failed {"enrollments_id":114,"batch_id":3,"error_message":"No fee plan found for batch ID: 3. Fee plan assignment is required for student enrollment.","error_trace":"#0 /var/www/html/api_loyala_backend/app/Http/Controllers/Api/V1/Admin/UserController.php(1278): App\\Http\\Controllers\\Api\\V1\\Admin\\UserController->assignStudentFeePlan()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): App\\Http\\Controllers\\Api\\V1\\Admin\\UserController->registerOffline()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\\Routing\\Route->runController()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\\Routing\\Route->run()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Router->{closure:Illuminate\\Routing\\Router::runRouteWithinStack():821}()
#6 /var/www/html/api_loyala_backend/app/Http/Middleware/CacheApiResponses.php(49): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CacheApiResponses->handle()
#8 /var/www/html/api_loyala_backend/app/Http/Middleware/InvalidateApiCache.php(20): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\InvalidateApiCache->handle()
#10 /var/www/html/api_loyala_backend/app/Http/Middleware/RoutePermissionMiddleware.php(112): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\RoutePermissionMiddleware->handle()
#12 /var/www/html/api_loyala_backend/vendor/tymon/jwt-auth/src/Http/Middleware/Authenticate.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Tymon\\JWTAuth\\Http\\Middleware\\Authenticate->handle()
#14 /var/www/html/api_loyala_backend/app/Http/Middleware/GzipMiddleware.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\GzipMiddleware->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#18 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#20 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#29 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#52 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#53 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#54 {main}"} 
[2026-10-05 12:17:35] local.INFO: Transaction rolled back successfully  
[2026-10-05 12:17:35] local.ERROR: Student registration failed {"error":"Fee plan assignment failed: No fee plan found for batch ID: 3. Fee plan assignment is required for student enrollment.","trace":"#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): App\\Http\\Controllers\\Api\\V1\\Admin\\UserController->registerOffline()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\\Routing\\Route->runController()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\\Routing\\Route->run()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Router->{closure:Illuminate\\Routing\\Router::runRouteWithinStack():821}()
#5 /var/www/html/api_loyala_backend/app/Http/Middleware/CacheApiResponses.php(49): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CacheApiResponses->handle()
#7 /var/www/html/api_loyala_backend/app/Http/Middleware/InvalidateApiCache.php(20): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\InvalidateApiCache->handle()
#9 /var/www/html/api_loyala_backend/app/Http/Middleware/RoutePermissionMiddleware.php(112): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\RoutePermissionMiddleware->handle()
#11 /var/www/html/api_loyala_backend/vendor/tymon/jwt-auth/src/Http/Middleware/Authenticate.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Tymon\\JWTAuth\\Http\\Middleware\\Authenticate->handle()
#13 /var/www/html/api_loyala_backend/app/Http/Middleware/GzipMiddleware.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\GzipMiddleware->handle()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#17 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#19 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#28 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#52 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#53 {main}","request_data":{"full_name":"Anton John","email":"john@gmail.com","phone":"0774589632","whtsapp_num":"0778536125","emergency_phone":null,"nic_passport":"902548785V","dob":"1990-09-14","gender":"male","address":"Bogavanthalava","marital_status":null,"admission_date":"2026-10-05","country":null,"district":null,"family_members":[],"vulnerabilities":["No vulnerabilities"],"requested_branch":4,"branch":4,"faculty_id":2,"program_category":6,"program_id":13,"batch_id":3,"o_level_school":null,"o_level_exam_id":null,"o_level_graduation_year":null,"o_level_graduation_point":null,"a_level_school":null,"a_level_exam_id":null,"a_level_graduation_year":null,"a_level_graduation_point":null,"education_level":"higher_diploma","occupation":"student","occupation_place_name":null,"know_from":"social_media","note":null,"status":"active","reg_type":"offline","isConvert":true,"lead_id":155}} 
[2026-10-05 12:17:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:17:47] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/programs/13","user_id":11,"user_reg_no":"STF001003","permissions":["academic.programs.view_detail"],"permission_ids":[300]} 
[2026-10-05 12:18:05] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/document-type-configs","user_id":11,"user_reg_no":"STF001003","permissions":["documents.type_config.view"],"permission_ids":[954]} 
[2026-10-05 12:18:21] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/programs/13","user_id":11,"user_reg_no":"STF001003","permissions":["academic.programs.view_detail"],"permission_ids":[300]} 
[2026-10-05 12:18:25] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/programs/13","user_id":11,"user_reg_no":"STF001003","permissions":["academic.programs.view_detail"],"permission_ids":[300]} 
[2026-10-05 12:18:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:18:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:19:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:19:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:20:18] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/intakes","user_id":11,"user_reg_no":"STF001003","permissions":["academic.batches.intakes.view"],"permission_ids":[1344]} 
[2026-10-05 12:20:18] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/programs/13","user_id":11,"user_reg_no":"STF001003","permissions":["academic.programs.view_detail"],"permission_ids":[300]} 
[2026-10-05 12:20:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:20:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:21:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:21:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:21:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:21:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:21:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:22:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:22:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:23:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:23:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:23:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:23:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:23:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:23:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:23:36] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:23:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:24:18] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/programs/13","user_id":11,"user_reg_no":"STF001003","permissions":["academic.programs.view_detail"],"permission_ids":[300]} 
[2026-10-05 12:24:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:24:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:24:32] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/document-type-configs","user_id":11,"user_reg_no":"STF001003","permissions":["documents.type_config.view"],"permission_ids":[954]} 
[2026-10-05 12:24:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:24:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:24:35] local.INFO: Registration Number Generation {"useBatchCode":false,"batchId":3,"env_value":null} 
[2026-10-05 12:24:37] local.INFO: Using backend-style offer letter template  
[2026-10-05 12:24:37] local.INFO: OfferLetterService: generateFinePolicySection invoked  
[2026-10-05 12:24:37] local.INFO: OfferLetterService: fine policy not found, returning empty section  
[2026-10-05 12:24:37] local.INFO: OfferLetterService: fine policy section generated {"included":false,"length":0} 
[2026-10-05 12:25:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:25:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:25:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:25:32] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1"}  
[2026-10-05 12:25:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:25:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:25:38] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null,"branch_id":"4"}  
[2026-10-05 12:25:38] local.INFO: applyStudentFilters branch_id: 4  
[2026-10-05 12:25:38] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1"}  
[2026-10-05 12:25:45] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","program":"12"}  
[2026-10-05 12:25:47] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":"12","batch":null,"type":null,"branch_id":"4"}  
[2026-10-05 12:25:47] local.INFO: applyStudentFilters branch_id: 4  
[2026-10-05 12:25:50] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"suspended","program":"12"}  
[2026-10-05 12:25:50] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"graduated","program":"12"}  
[2026-10-05 12:25:50] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"dropped","program":"12"}  
[2026-10-05 12:25:51] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"inactive","program":"12"}  
[2026-10-05 12:25:51] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"active","program":"12"}  
[2026-10-05 12:25:52] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","program":"13"}  
[2026-10-05 12:25:53] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":"13","batch":null,"type":null,"branch_id":"4"}  
[2026-10-05 12:25:53] local.INFO: applyStudentFilters branch_id: 4  
[2026-10-05 12:25:56] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","program":"12","type":"online"}  
[2026-10-05 12:25:56] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"active","program":"13"}  
[2026-10-05 12:25:56] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","program":"12","type":"offline"}  
[2026-10-05 12:25:57] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"dropped","program":"13"}  
[2026-10-05 12:25:57] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"suspended","program":"13"}  
[2026-10-05 12:25:58] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"inactive","program":"13"}  
[2026-10-05 12:25:58] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"graduated","program":"13"}  
[2026-10-05 12:25:59] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":"13","batch":"3","type":null,"branch_id":"4"}  
[2026-10-05 12:25:59] local.INFO: applyStudentFilters branch_id: 4  
[2026-10-05 12:25:59] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","program":"13","batch":"3"}  
[2026-10-05 12:26:08] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","program":"13","type":"online"}  
[2026-10-05 12:26:11] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","program":"13","type":"offline"}  
[2026-10-05 12:26:14] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"suspended","program":"13","batch":"3"}  
[2026-10-05 12:26:15] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"dropped","program":"13","batch":"3"}  
[2026-10-05 12:26:16] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"graduated","program":"13","batch":"3"}  
[2026-10-05 12:26:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:26:21] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"inactive","program":"13","batch":"3"}  
[2026-10-05 12:26:21] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"active","program":"13","batch":"3"}  
[2026-10-05 12:26:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:26:22] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","program":"13","batch":"3","type":"offline"}  
[2026-10-05 12:26:23] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","program":"13","batch":"3","type":"online"}  
[2026-10-05 12:26:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:26:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:27:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:27:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:27:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:27:44] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/intakes","user_id":11,"user_reg_no":"STF001003","permissions":["academic.batches.intakes.view"],"permission_ids":[1344]} 
[2026-10-05 12:28:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:28:13] local.WARNING: User does not have permission for route {"route":"POST /api/v1/admin/intakes","user_id":11,"user_reg_no":"STF001003","permissions":["academic.batches.intakes.create"],"permission_ids":[1346]} 
[2026-10-05 12:28:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:28:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:29:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:29:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:29:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:29:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:30:30] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 12:15:24","page":1} 
[2026-10-05 12:30:31] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 11:30:30","window_to":"2026-10-05 12:30:30"} 
[2026-10-05 12:30:32] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 12:30:33] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 12:30:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:30:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:31:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:31:04] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/facility/locations","user_id":11,"user_reg_no":"STF001003","permissions":["lms.class_sessions.view_locations","lms.class_schedules.view_locations","facility.locations.view"],"permission_ids":[392,406,935]} 
[2026-10-05 12:31:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:31:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:31:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:31:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:31:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:32:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:32:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:32:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:32:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:32:32] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/facility/locations","user_id":11,"user_reg_no":"STF001003","permissions":["lms.class_sessions.view_locations","lms.class_schedules.view_locations","facility.locations.view"],"permission_ids":[392,406,935]} 
[2026-10-05 12:32:32] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/class-schedules","user_id":11,"user_reg_no":"STF001003","permissions":["lms.class_schedules.view"],"permission_ids":[400]} 
[2026-10-05 12:32:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:32:38] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/facility/locations","user_id":11,"user_reg_no":"STF001003","permissions":["lms.class_sessions.view_locations","lms.class_schedules.view_locations","facility.locations.view"],"permission_ids":[392,406,935]} 
[2026-10-05 12:32:40] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/class-schedules","user_id":11,"user_reg_no":"STF001003","permissions":["lms.class_schedules.view"],"permission_ids":[400]} 
[2026-10-05 12:32:41] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/facility/locations","user_id":11,"user_reg_no":"STF001003","permissions":["lms.class_sessions.view_locations","lms.class_schedules.view_locations","facility.locations.view"],"permission_ids":[392,406,935]} 
[2026-10-05 12:32:50] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:32:50] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:33:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:33:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:33:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:34:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:34:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:34:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:34:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:34:43] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:34:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:34:46] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/facility/locations","user_id":11,"user_reg_no":"STF001003","permissions":["lms.class_sessions.view_locations","lms.class_schedules.view_locations","facility.locations.view"],"permission_ids":[392,406,935]} 
[2026-10-05 12:34:47] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/class-schedules","user_id":11,"user_reg_no":"STF001003","permissions":["lms.class_schedules.view"],"permission_ids":[400]} 
[2026-10-05 12:34:56] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/facility/locations","user_id":11,"user_reg_no":"STF001003","permissions":["lms.class_sessions.view_locations","lms.class_schedules.view_locations","facility.locations.view"],"permission_ids":[392,406,935]} 
[2026-10-05 12:35:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:35:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:36:06] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:36:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:36:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:37:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:37:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:37:43] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:37:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:38:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:38:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:38:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:38:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:38:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:39:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:39:37] local.ERROR: Gmail API error: Gmail API settings not configured  
[2026-10-05 12:39:37] local.WARNING: Gmail failed for staff credentials email, trying Zepto Mail {"gmail_error":"Gmail API settings not configured"} 
[2026-10-05 12:39:37] local.ERROR: ZeptoMailer error: Zepto Mail API key or admin email not configured  
[2026-10-05 12:39:37] local.WARNING: Failed to send staff credentials email {"staff_id":14,"error":"Zepto Mail API key or admin email not configured"} 
[2026-10-05 12:39:38] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:39:38] local.INFO: No FCM tokens found for user {"notification_id":72,"user_id":1} 
[2026-10-05 12:39:38] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:39:38] local.INFO: No FCM tokens found for user {"notification_id":73,"user_id":2} 
[2026-10-05 12:39:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:39:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:39:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:39:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:39:47] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:40:13] local.INFO: Lecturer assignment notification sent {"module_offering_id":3,"user_id":97,"role":"lecturer"} 
[2026-10-05 12:40:13] local.INFO: Module offering creation notifications sent {"module_offering_id":3,"module_name":"Intro","program_name":"Information Communication Technology Technician"} 
[2026-10-05 12:40:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:40:14] local.INFO: No FCM tokens found for user {"notification_id":74,"user_id":97} 
[2026-10-05 12:40:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:40:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:40:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:40:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:40:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:41:06] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:41:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:41:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:41:35] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/intakes","user_id":11,"user_reg_no":"STF001003","permissions":["academic.batches.intakes.view"],"permission_ids":[1344]} 
[2026-10-05 12:42:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:42:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:42:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:42:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:43:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:43:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:43:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:43:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:44:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:44:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:44:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:44:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:44:43] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:44:50] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:45:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 12:30:30","page":1} 
[2026-10-05 12:45:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 12:45:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 12:45:26] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 11:45:25","window_to":"2026-10-05 12:45:25"} 
[2026-10-05 12:45:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:45:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:45:50] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:46:06] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:46:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:46:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:47:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:47:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:47:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:47:43] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:47:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:47:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:48:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:48:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:49:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:49:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:50:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:50:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:50:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:50:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:51:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:51:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:51:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:51:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:52:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:52:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:52:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:52:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:52:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:52:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:52:59] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:52:59] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:53:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:53:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:53:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:53:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:54:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:54:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:55:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:55:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:55:50] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:55:50] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:56:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:56:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:56:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:56:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:57:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:57:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:57:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:57:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:58:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:58:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:58:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:58:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:59:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:59:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:59:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 12:59:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:00:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:00:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:00:30] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 12:45:24","page":1} 
[2026-10-05 13:00:31] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 12:00:30","window_to":"2026-10-05 13:00:30"} 
[2026-10-05 13:00:33] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 13:00:33] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 13:00:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:00:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:00:55] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-05 12:00:55","window_to":"2026-10-05 13:00:55"} 
[2026-10-05 13:01:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:01:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:01:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:01:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:01:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:02:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:02:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:02:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:02:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:03:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:03:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:03:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:03:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:04:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:04:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:04:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:04:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:04:50] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:04:50] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:05:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:06:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:06:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:07:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:07:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:07:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:07:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:08:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:08:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:08:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:08:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:09:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:09:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:09:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:09:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:10:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:10:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:10:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:10:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:10:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:10:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:11:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:11:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:11:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:11:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:12:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:12:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:12:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:12:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:13:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:13:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:13:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:13:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:14:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:14:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:14:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:15:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:15:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:15:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:15:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 13:00:29","page":1} 
[2026-10-05 13:15:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 12:15:24","window_to":"2026-10-05 13:15:24"} 
[2026-10-05 13:15:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 13:15:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 13:16:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:16:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:16:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:16:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:17:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:17:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:17:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:17:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:17:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:18:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:18:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:19:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:19:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:19:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:19:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:20:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:21:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:21:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:21:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:21:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:22:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:22:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:22:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:22:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:23:02] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:23:04] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:23:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:23:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:24:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:24:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:24:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:24:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 13:30:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 12:30:23","window_to":"2026-10-05 13:30:24"} 
[2026-10-05 13:30:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 13:15:24","page":1} 
[2026-10-05 13:30:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 13:30:27] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 13:45:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 12:45:22","window_to":"2026-10-05 13:45:22"} 
[2026-10-05 13:45:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 13:30:25","page":1} 
[2026-10-05 13:45:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 13:45:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 14:00:27] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 13:00:26","window_to":"2026-10-05 14:00:27"} 
[2026-10-05 14:00:27] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 13:45:23","page":1} 
[2026-10-05 14:00:30] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 14:00:30] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 14:00:50] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-05 13:00:49","window_to":"2026-10-05 14:00:49"} 
[2026-10-05 14:15:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 13:15:24","window_to":"2026-10-05 14:15:24"} 
[2026-10-05 14:15:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 14:00:27","page":1} 
[2026-10-05 14:15:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 14:15:27] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 14:30:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 14:15:25","page":1} 
[2026-10-05 14:30:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 13:30:25","window_to":"2026-10-05 14:30:25"} 
[2026-10-05 14:30:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 14:30:27] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 14:45:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 14:30:25","page":1} 
[2026-10-05 14:45:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 13:45:21","window_to":"2026-10-05 14:45:21"} 
[2026-10-05 14:45:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 14:45:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 15:00:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 14:45:20","page":1} 
[2026-10-05 15:00:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 14:00:24","window_to":"2026-10-05 15:00:24"} 
[2026-10-05 15:00:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 15:00:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 15:00:45] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-05 14:00:45","window_to":"2026-10-05 15:00:45"} 
[2026-10-05 15:15:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 14:15:22","window_to":"2026-10-05 15:15:22"} 
[2026-10-05 15:15:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 15:00:24","page":1} 
[2026-10-05 15:15:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 15:15:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 15:30:27] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 15:15:23","page":1} 
[2026-10-05 15:30:28] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 14:30:27","window_to":"2026-10-05 15:30:27"} 
[2026-10-05 15:30:28] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 15:30:29] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 15:45:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 14:45:24","window_to":"2026-10-05 15:45:24"} 
[2026-10-05 15:45:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 15:30:27","page":1} 
[2026-10-05 15:45:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 15:45:27] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 16:00:27] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 15:45:25","page":1} 
[2026-10-05 16:00:28] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 15:00:27","window_to":"2026-10-05 16:00:27"} 
[2026-10-05 16:00:29] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 16:00:30] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 16:00:49] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-05 15:00:48","window_to":"2026-10-05 16:00:49"} 
[2026-10-05 16:15:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 16:00:27","page":1} 
[2026-10-05 16:15:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 15:15:22","window_to":"2026-10-05 16:15:22"} 
[2026-10-05 16:15:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 16:15:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 16:30:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 15:30:24","window_to":"2026-10-05 16:30:25"} 
[2026-10-05 16:30:26] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 16:15:22","page":1} 
[2026-10-05 16:30:28] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 16:30:28] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 16:45:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 16:30:25","page":1} 
[2026-10-05 16:45:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 15:45:22","window_to":"2026-10-05 16:45:22"} 
[2026-10-05 16:45:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 16:45:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 17:00:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 16:45:22","page":1} 
[2026-10-05 17:00:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 16:00:24","window_to":"2026-10-05 17:00:25"} 
[2026-10-05 17:00:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 17:00:27] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 17:00:46] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-05 16:00:45","window_to":"2026-10-05 17:00:45"} 
[2026-10-05 17:12:01] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:12:06] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:12:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:12:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:13:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:13:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:14:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:14:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:15:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:15:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 17:00:25","page":1} 
[2026-10-05 17:15:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 16:15:21","window_to":"2026-10-05 17:15:22"} 
[2026-10-05 17:15:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 17:15:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 17:15:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:16:03] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:16:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:16:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:17:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:17:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:18:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:18:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:19:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:19:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:20:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:20:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:21:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:21:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:22:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:22:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:23:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:23:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:24:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:24:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:25:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:26:07] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:27:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:27:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:27:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:28:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:28:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:29:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:29:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:30:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:30:26] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 16:30:26","window_to":"2026-10-05 17:30:26"} 
[2026-10-05 17:30:26] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 17:15:22","page":1} 
[2026-10-05 17:30:28] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 17:30:28] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 17:30:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:31:04] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:31:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:31:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:32:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:32:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:33:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:33:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:35:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:35:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:36:07] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:37:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:37:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:38:07] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:39:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:39:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:40:07] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:41:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:41:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:42:07] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:45:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 17:30:26","page":1} 
[2026-10-05 17:45:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 16:45:22","window_to":"2026-10-05 17:45:22"} 
[2026-10-05 17:45:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 17:45:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 17:51:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:51:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:53:07] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:54:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:54:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:55:07] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:56:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:56:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:57:07] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:58:01] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:58:02] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:58:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:58:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 17:59:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:00:03] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:00:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:00:28] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 17:00:27","window_to":"2026-10-05 18:00:27"} 
[2026-10-05 18:00:28] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 17:45:21","page":1} 
[2026-10-05 18:00:30] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 18:00:30] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 18:00:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:00:49] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-05 17:00:48","window_to":"2026-10-05 18:00:48"} 
[2026-10-05 18:01:02] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:01:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:01:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:02:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:02:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:03:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:03:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:04:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:04:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:05:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:05:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:06:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:07:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:07:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:08:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:08:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:09:07] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:10:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:10:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:11:07] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:11:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:11:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:11:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:12:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:13:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:13:09] local.ERROR: Gmail API error: Gmail API settings not configured  
[2026-10-05 18:13:09] local.WARNING: Gmail failed for staff credentials email, trying Zepto Mail {"gmail_error":"Gmail API settings not configured"} 
[2026-10-05 18:13:09] local.ERROR: ZeptoMailer error: Zepto Mail API key or admin email not configured  
[2026-10-05 18:13:09] local.WARNING: Failed to send staff credentials email {"staff_id":15,"error":"Zepto Mail API key or admin email not configured"} 
[2026-10-05 18:13:09] local.INFO: No FCM tokens found for user {"notification_id":75,"user_id":1} 
[2026-10-05 18:13:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:13:09] local.INFO: No FCM tokens found for user {"notification_id":76,"user_id":2} 
[2026-10-05 18:13:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:13:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:13:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:14:03] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:14:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:14:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:15:04] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:15:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:15:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 18:00:28","page":1} 
[2026-10-05 18:15:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 17:15:23","window_to":"2026-10-05 18:15:23"} 
[2026-10-05 18:15:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 18:15:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 18:15:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:16:02] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:16:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:16:24] local.ERROR: Gmail API error: Gmail API settings not configured  
[2026-10-05 18:16:24] local.WARNING: Gmail failed for staff credentials email, trying Zepto Mail {"gmail_error":"Gmail API settings not configured"} 
[2026-10-05 18:16:24] local.ERROR: ZeptoMailer error: Zepto Mail API key or admin email not configured  
[2026-10-05 18:16:24] local.WARNING: Failed to send staff credentials email {"staff_id":16,"error":"Zepto Mail API key or admin email not configured"} 
[2026-10-05 18:16:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:16:25] local.INFO: No FCM tokens found for user {"notification_id":77,"user_id":1} 
[2026-10-05 18:16:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:16:25] local.INFO: No FCM tokens found for user {"notification_id":78,"user_id":2} 
[2026-10-05 18:16:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:16:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:17:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:18:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:18:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:19:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:19:25] local.ERROR: Gmail API error: Gmail API settings not configured  
[2026-10-05 18:19:25] local.WARNING: Gmail failed for staff credentials email, trying Zepto Mail {"gmail_error":"Gmail API settings not configured"} 
[2026-10-05 18:19:25] local.ERROR: ZeptoMailer error: Zepto Mail API key or admin email not configured  
[2026-10-05 18:19:25] local.WARNING: Failed to send staff credentials email {"staff_id":17,"error":"Zepto Mail API key or admin email not configured"} 
[2026-10-05 18:19:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:19:28] local.INFO: No FCM tokens found for user {"notification_id":79,"user_id":1} 
[2026-10-05 18:19:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:19:28] local.INFO: No FCM tokens found for user {"notification_id":80,"user_id":2} 
[2026-10-05 18:19:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:19:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:20:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:21:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:21:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:21:43] local.ERROR: Gmail API error: Gmail API settings not configured  
[2026-10-05 18:21:43] local.WARNING: Gmail failed for staff credentials email, trying Zepto Mail {"gmail_error":"Gmail API settings not configured"} 
[2026-10-05 18:21:43] local.ERROR: ZeptoMailer error: Zepto Mail API key or admin email not configured  
[2026-10-05 18:21:43] local.WARNING: Failed to send staff credentials email {"staff_id":18,"error":"Zepto Mail API key or admin email not configured"} 
[2026-10-05 18:21:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:21:44] local.INFO: No FCM tokens found for user {"notification_id":81,"user_id":1} 
[2026-10-05 18:21:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:21:44] local.INFO: No FCM tokens found for user {"notification_id":82,"user_id":2} 
[2026-10-05 18:22:01] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:22:03] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:22:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:23:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:23:31] local.ERROR: Gmail API error: Gmail API settings not configured  
[2026-10-05 18:23:31] local.WARNING: Gmail failed for staff credentials email, trying Zepto Mail {"gmail_error":"Gmail API settings not configured"} 
[2026-10-05 18:23:31] local.ERROR: ZeptoMailer error: Zepto Mail API key or admin email not configured  
[2026-10-05 18:23:31] local.WARNING: Failed to send staff credentials email {"staff_id":19,"error":"Zepto Mail API key or admin email not configured"} 
[2026-10-05 18:23:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:23:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:23:32] local.INFO: No FCM tokens found for user {"notification_id":83,"user_id":1} 
[2026-10-05 18:23:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:23:32] local.INFO: No FCM tokens found for user {"notification_id":84,"user_id":2} 
[2026-10-05 18:24:02] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:24:05] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:24:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:25:02] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:25:02] local.INFO: No FCM tokens found for user {"notification_id":85,"user_id":1} 
[2026-10-05 18:25:02] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:25:02] local.INFO: No FCM tokens found for user {"notification_id":86,"user_id":2} 
[2026-10-05 18:25:02] local.ERROR: Gmail API error: Gmail API settings not configured  
[2026-10-05 18:25:02] local.WARNING: Gmail failed for staff credentials email, trying Zepto Mail {"gmail_error":"Gmail API settings not configured"} 
[2026-10-05 18:25:02] local.ERROR: ZeptoMailer error: Zepto Mail API key or admin email not configured  
[2026-10-05 18:25:02] local.WARNING: Failed to send staff credentials email {"staff_id":20,"error":"Zepto Mail API key or admin email not configured"} 
[2026-10-05 18:25:06] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:25:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:25:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:26:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:26:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:27:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:27:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:28:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:28:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:28:32] local.ERROR: Gmail API error: Gmail API settings not configured  
[2026-10-05 18:28:32] local.WARNING: Gmail failed for staff credentials email, trying Zepto Mail {"gmail_error":"Gmail API settings not configured"} 
[2026-10-05 18:28:32] local.ERROR: ZeptoMailer error: Zepto Mail API key or admin email not configured  
[2026-10-05 18:28:32] local.WARNING: Failed to send staff credentials email {"staff_id":21,"error":"Zepto Mail API key or admin email not configured"} 
[2026-10-05 18:28:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:28:33] local.INFO: No FCM tokens found for user {"notification_id":87,"user_id":1} 
[2026-10-05 18:28:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:28:33] local.INFO: No FCM tokens found for user {"notification_id":88,"user_id":2} 
[2026-10-05 18:29:03] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:29:06] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:29:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:30:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:30:14] local.ERROR: Gmail API error: Gmail API settings not configured  
[2026-10-05 18:30:14] local.WARNING: Gmail failed for staff credentials email, trying Zepto Mail {"gmail_error":"Gmail API settings not configured"} 
[2026-10-05 18:30:14] local.ERROR: ZeptoMailer error: Zepto Mail API key or admin email not configured  
[2026-10-05 18:30:14] local.WARNING: Failed to send staff credentials email {"staff_id":22,"error":"Zepto Mail API key or admin email not configured"} 
[2026-10-05 18:30:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:30:15] local.INFO: No FCM tokens found for user {"notification_id":89,"user_id":1} 
[2026-10-05 18:30:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:30:15] local.INFO: No FCM tokens found for user {"notification_id":90,"user_id":2} 
[2026-10-05 18:30:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 18:15:23","page":1} 
[2026-10-05 18:30:26] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 17:30:25","window_to":"2026-10-05 18:30:26"} 
[2026-10-05 18:30:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 18:30:27] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 18:30:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:30:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:31:03] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:31:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:31:17] local.ERROR: Gmail API error: Gmail API settings not configured  
[2026-10-05 18:31:17] local.WARNING: Gmail failed for staff credentials email, trying Zepto Mail {"gmail_error":"Gmail API settings not configured"} 
[2026-10-05 18:31:17] local.ERROR: ZeptoMailer error: Zepto Mail API key or admin email not configured  
[2026-10-05 18:31:17] local.WARNING: Failed to send staff credentials email {"staff_id":23,"error":"Zepto Mail API key or admin email not configured"} 
[2026-10-05 18:31:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:31:19] local.INFO: No FCM tokens found for user {"notification_id":91,"user_id":1} 
[2026-10-05 18:31:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:31:19] local.INFO: No FCM tokens found for user {"notification_id":92,"user_id":2} 
[2026-10-05 18:31:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:31:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:32:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:33:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:33:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:34:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:34:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:36:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:36:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:37:07] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:38:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:38:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:39:07] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:40:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:40:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:41:07] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:42:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:42:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:42:43] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:43:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:43:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:44:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:45:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 17:45:20","window_to":"2026-10-05 18:45:20"} 
[2026-10-05 18:45:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 18:30:25","page":1} 
[2026-10-05 18:45:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 18:45:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 18:47:07] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:47:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:47:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:49:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:49:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:50:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:51:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:51:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:52:07] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:52:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:52:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:53:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:53:59] local.ERROR: Gmail API error: Gmail API settings not configured  
[2026-10-05 18:53:59] local.WARNING: Gmail failed for staff credentials email, trying Zepto Mail {"gmail_error":"Gmail API settings not configured"} 
[2026-10-05 18:53:59] local.ERROR: ZeptoMailer error: Zepto Mail API key or admin email not configured  
[2026-10-05 18:53:59] local.WARNING: Failed to send staff credentials email {"staff_id":24,"error":"Zepto Mail API key or admin email not configured"} 
[2026-10-05 18:54:01] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:54:01] local.INFO: No FCM tokens found for user {"notification_id":93,"user_id":1} 
[2026-10-05 18:54:01] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:54:01] local.INFO: No FCM tokens found for user {"notification_id":94,"user_id":2} 
[2026-10-05 18:54:03] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:54:05] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:54:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:55:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:55:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:56:09] local.ERROR: Gmail API error: Gmail API settings not configured  
[2026-10-05 18:56:09] local.WARNING: Gmail failed for staff credentials email, trying Zepto Mail {"gmail_error":"Gmail API settings not configured"} 
[2026-10-05 18:56:09] local.ERROR: ZeptoMailer error: Zepto Mail API key or admin email not configured  
[2026-10-05 18:56:09] local.WARNING: Failed to send staff credentials email {"staff_id":25,"error":"Zepto Mail API key or admin email not configured"} 
[2026-10-05 18:56:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:56:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:56:11] local.INFO: No FCM tokens found for user {"notification_id":95,"user_id":1} 
[2026-10-05 18:56:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:56:11] local.INFO: No FCM tokens found for user {"notification_id":96,"user_id":2} 
[2026-10-05 18:56:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:56:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:57:13] local.ERROR: Gmail API error: Gmail API settings not configured  
[2026-10-05 18:57:13] local.WARNING: Gmail failed for staff credentials email, trying Zepto Mail {"gmail_error":"Gmail API settings not configured"} 
[2026-10-05 18:57:13] local.ERROR: ZeptoMailer error: Zepto Mail API key or admin email not configured  
[2026-10-05 18:57:13] local.WARNING: Failed to send staff credentials email {"staff_id":26,"error":"Zepto Mail API key or admin email not configured"} 
[2026-10-05 18:57:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:57:14] local.INFO: No FCM tokens found for user {"notification_id":97,"user_id":1} 
[2026-10-05 18:57:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:57:14] local.INFO: No FCM tokens found for user {"notification_id":98,"user_id":2} 
[2026-10-05 18:57:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:57:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:58:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:59:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 18:59:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:00:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:00:26] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 18:45:21","page":1} 
[2026-10-05 19:00:27] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 18:00:26","window_to":"2026-10-05 19:00:26"} 
[2026-10-05 19:00:29] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 19:00:30] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 19:00:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:00:50] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-05 18:00:50","window_to":"2026-10-05 19:00:50"} 
[2026-10-05 19:00:57] local.ERROR: Gmail API error: Gmail API settings not configured  
[2026-10-05 19:00:57] local.WARNING: Gmail failed for staff credentials email, trying Zepto Mail {"gmail_error":"Gmail API settings not configured"} 
[2026-10-05 19:00:57] local.ERROR: ZeptoMailer error: Zepto Mail API key or admin email not configured  
[2026-10-05 19:00:57] local.WARNING: Failed to send staff credentials email {"staff_id":27,"error":"Zepto Mail API key or admin email not configured"} 
[2026-10-05 19:01:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:01:00] local.INFO: No FCM tokens found for user {"notification_id":99,"user_id":1} 
[2026-10-05 19:01:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:01:00] local.INFO: No FCM tokens found for user {"notification_id":100,"user_id":2} 
[2026-10-05 19:01:03] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:01:07] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:01:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:02:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:02:18] local.ERROR: Gmail API error: Gmail API settings not configured  
[2026-10-05 19:02:18] local.WARNING: Gmail failed for staff credentials email, trying Zepto Mail {"gmail_error":"Gmail API settings not configured"} 
[2026-10-05 19:02:18] local.ERROR: ZeptoMailer error: Zepto Mail API key or admin email not configured  
[2026-10-05 19:02:18] local.WARNING: Failed to send staff credentials email {"staff_id":28,"error":"Zepto Mail API key or admin email not configured"} 
[2026-10-05 19:02:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:02:19] local.INFO: No FCM tokens found for user {"notification_id":101,"user_id":1} 
[2026-10-05 19:02:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:02:19] local.INFO: No FCM tokens found for user {"notification_id":102,"user_id":2} 
[2026-10-05 19:02:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:02:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:03:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:04:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:04:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:04:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:05:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:06:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:06:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:06:18] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null}  
[2026-10-05 19:06:19] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1"}  
[2026-10-05 19:06:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:06:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:07:16] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1"}  
[2026-10-05 19:07:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:07:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:08:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:08:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:09:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:09:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:09:49] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null}  
[2026-10-05 19:09:49] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1"}  
[2026-10-05 19:09:55] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":"4","batch":null,"type":null}  
[2026-10-05 19:09:56] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","program":"4"}  
[2026-10-05 19:09:58] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"active","program":"4"}  
[2026-10-05 19:09:58] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"dropped","program":"4"}  
[2026-10-05 19:09:58] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"inactive","program":"4"}  
[2026-10-05 19:09:58] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"graduated","program":"4"}  
[2026-10-05 19:09:59] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"suspended","program":"4"}  
[2026-10-05 19:10:00] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","program":"4","type":"online"}  
[2026-10-05 19:10:04] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","program":"4","type":"offline"}  
[2026-10-05 19:10:15] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":"3","batch":null,"type":null}  
[2026-10-05 19:10:19] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","program":"3"}  
[2026-10-05 19:10:32] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","program":"5"}  
[2026-10-05 19:10:33] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":"5","batch":null,"type":null}  
[2026-10-05 19:10:33] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"dropped","program":"3"}  
[2026-10-05 19:10:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:10:34] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"suspended","program":"3"}  
[2026-10-05 19:10:34] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"graduated","program":"3"}  
[2026-10-05 19:10:34] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"active","program":"3"}  
[2026-10-05 19:10:34] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"inactive","program":"3"}  
[2026-10-05 19:10:51] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"active","program":"5"}  
[2026-10-05 19:10:51] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"inactive","program":"5"}  
[2026-10-05 19:10:51] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"dropped","program":"5"}  
[2026-10-05 19:10:52] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","program":"3","type":"online"}  
[2026-10-05 19:10:52] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"graduated","program":"5"}  
[2026-10-05 19:10:52] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","program":"3","type":"offline"}  
[2026-10-05 19:10:52] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"suspended","program":"5"}  
[2026-10-05 19:10:52] local.INFO: Entering getAllStudents route. Params: {"page":"4","limit":"10","search":null,"status":null,"program":"5","batch":null,"type":null}  
[2026-10-05 19:10:53] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","program":"5","type":"offline"}  
[2026-10-05 19:10:53] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","program":"5","type":"online"}  
[2026-10-05 19:11:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:11:17] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","program":"6"}  
[2026-10-05 19:11:17] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":"6","batch":null,"type":null}  
[2026-10-05 19:11:20] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"inactive","program":"6"}  
[2026-10-05 19:11:20] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"active","program":"6"}  
[2026-10-05 19:11:20] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"suspended","program":"6"}  
[2026-10-05 19:11:20] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"graduated","program":"6"}  
[2026-10-05 19:11:20] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"dropped","program":"6"}  
[2026-10-05 19:11:21] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","program":"6","type":"online"}  
[2026-10-05 19:11:21] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","program":"6","type":"offline"}  
[2026-10-05 19:11:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:11:36] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:12:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:13:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:13:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:14:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:14:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:14:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:14:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:14:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:14:38] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:14:38] local.WARNING: Firestore not initialized  
[2026-10-05 19:14:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:14:39] local.WARNING: Firestore not initialized  
[2026-10-05 19:14:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:14:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:14:40] local.WARNING: Firestore not initialized  
[2026-10-05 19:14:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:14:40] local.WARNING: Firestore not initialized  
[2026-10-05 19:14:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:14:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:14:42] local.WARNING: Firestore not initialized  
[2026-10-05 19:14:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:14:42] local.WARNING: Firestore not initialized  
[2026-10-05 19:14:43] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:14:43] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:14:43] local.WARNING: Firestore not initialized  
[2026-10-05 19:14:43] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:14:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:14:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:14:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:15:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 18:15:22","window_to":"2026-10-05 19:15:22"} 
[2026-10-05 19:15:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 19:00:26","page":1} 
[2026-10-05 19:15:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 19:15:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 19:15:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:15:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:16:03] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:16:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:17:01] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:17:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:17:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:18:04] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:18:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:18:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:18:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:19:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:19:34] local.WARNING: Permission route not configured; blocking request {"route":"GET /api/v1/admin/fee-catalogs/2","user_id":1,"user_reg_no":"ADM001001","method":"GET","path":"/api/v1/admin/fee-catalogs/2"} 
[2026-10-05 19:19:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:20:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:20:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:21:02] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:21:07] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:21:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:22:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:22:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:23:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:23:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:24:03] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:24:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:24:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:25:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:25:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:26:03] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:26:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:26:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:27:03] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:27:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:27:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:28:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:28:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:28:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:29:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:30:03] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:30:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:30:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 19:15:23","page":1} 
[2026-10-05 19:30:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 18:30:24","window_to":"2026-10-05 19:30:24"} 
[2026-10-05 19:30:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 19:30:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 19:30:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:31:05] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:31:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:31:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:32:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:32:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:32:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:33:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:33:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:34:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:34:40] local.ERROR: Gmail API error: Gmail API settings not configured  
[2026-10-05 19:34:40] local.WARNING: Gmail failed for staff credentials email, trying Zepto Mail {"gmail_error":"Gmail API settings not configured"} 
[2026-10-05 19:34:40] local.ERROR: ZeptoMailer error: Zepto Mail API key or admin email not configured  
[2026-10-05 19:34:40] local.WARNING: Failed to send staff credentials email {"staff_id":29,"error":"Zepto Mail API key or admin email not configured"} 
[2026-10-05 19:34:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:34:40] local.INFO: No FCM tokens found for user {"notification_id":103,"user_id":112} 
[2026-10-05 19:34:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:34:40] local.INFO: No FCM tokens found for user {"notification_id":104,"user_id":1} 
[2026-10-05 19:34:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:34:40] local.INFO: No FCM tokens found for user {"notification_id":105,"user_id":2} 
[2026-10-05 19:35:04] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:35:06] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:35:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:35:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:36:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:37:01] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:37:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:37:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:37:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:38:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:38:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:39:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:39:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:40:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:41:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:41:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:42:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:42:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:42:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:43:01] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:43:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:43:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:44:03] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:44:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:44:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:45:03] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:45:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:45:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 18:45:20","window_to":"2026-10-05 19:45:21"} 
[2026-10-05 19:45:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 19:30:24","page":1} 
[2026-10-05 19:45:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 19:45:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 19:45:38] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:46:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:46:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:47:04] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:47:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:47:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:48:02] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:48:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:48:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:49:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:49:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:50:05] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:50:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:50:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:51:02] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:51:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:51:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:52:02] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:52:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:52:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:53:05] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:53:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:53:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:54:03] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:54:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:54:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:55:05] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:55:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:55:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:56:01] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:56:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:56:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:56:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:57:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:57:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:58:03] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:58:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:58:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:59:02] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:59:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:59:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 19:59:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:00:03] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:00:26] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 19:00:25","window_to":"2026-10-05 20:00:25"} 
[2026-10-05 20:00:26] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 19:45:22","page":1} 
[2026-10-05 20:00:29] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 20:00:29] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 20:00:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:00:50] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-05 19:00:50","window_to":"2026-10-05 20:00:50"} 
[2026-10-05 20:01:03] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:01:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:01:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:01:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:02:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:02:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:03:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:03:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:04:18] local.WARNING: Permission route not configured; blocking request {"route":"GET /api/v1/admin/batches/18/stats","user_id":1,"user_reg_no":"ADM001001","method":"GET","path":"/api/v1/admin/batches/18/stats"} 
[2026-10-05 20:04:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:04:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:05:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:06:03] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:06:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:06:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:08:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:08:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:08:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:08:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:09:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:09:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:10:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:11:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:11:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:12:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:12:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:13:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:13:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:14:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:14:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:15:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:15:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 20:00:26","page":1} 
[2026-10-05 20:15:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 19:15:22","window_to":"2026-10-05 20:15:22"} 
[2026-10-05 20:15:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 20:15:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 20:15:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:16:03] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:16:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:16:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:17:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:17:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:18:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:18:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:19:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:19:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:20:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:20:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:22:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:22:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:23:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:23:50] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:23:50] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:24:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:24:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:25:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:26:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:26:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:26:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:26:46] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1"}  
[2026-10-05 20:26:47] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","program":"6"}  
[2026-10-05 20:26:48] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":"6","batch":null,"type":null}  
[2026-10-05 20:26:50] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"active","program":"6"}  
[2026-10-05 20:26:51] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"graduated","program":"6"}  
[2026-10-05 20:26:51] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"inactive","program":"6"}  
[2026-10-05 20:26:51] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"suspended","program":"6"}  
[2026-10-05 20:26:51] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","status":"dropped","program":"6"}  
[2026-10-05 20:26:53] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","program":"6","type":"offline"}  
[2026-10-05 20:26:53] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1","program":"6","type":"online"}  
[2026-10-05 20:27:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:27:47] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:28:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-05 20:30:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 20:15:22","page":1} 
[2026-10-05 20:30:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 19:30:22","window_to":"2026-10-05 20:30:23"} 
[2026-10-05 20:30:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 20:30:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 20:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 20:30:22","page":1} 
[2026-10-05 20:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 19:45:19","window_to":"2026-10-05 20:45:20"} 
[2026-10-05 20:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 20:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 21:00:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 20:00:24","window_to":"2026-10-05 21:00:24"} 
[2026-10-05 21:00:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 20:45:19","page":1} 
[2026-10-05 21:00:28] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 21:00:28] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 21:00:47] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-05 20:00:47","window_to":"2026-10-05 21:00:47"} 
[2026-10-05 21:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 20:15:19","window_to":"2026-10-05 21:15:19"} 
[2026-10-05 21:15:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 21:00:25","page":1} 
[2026-10-05 21:15:21] local.ERROR: ❌ Exception while polling TikTok leads {"error":"cURL error 35: OpenSSL/3.0.13: error:0A000438:SSL routines::tlsv1 alert internal error (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://business-api.tiktok.com/open_api/v1.3/page/leads/get/?filtering=%7B%22start_time%22%3A%222026-10-05%2021%3A00%3A25%22%7D&page=1&page_size=100"} 
[2026-10-05 21:15:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 21:30:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 21:15:20","page":1} 
[2026-10-05 21:30:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 20:30:22","window_to":"2026-10-05 21:30:23"} 
[2026-10-05 21:30:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 21:30:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 21:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 20:45:19","window_to":"2026-10-05 21:45:19"} 
[2026-10-05 21:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 21:30:23","page":1} 
[2026-10-05 21:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 21:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 22:00:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 21:45:19","page":1} 
[2026-10-05 22:00:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 21:00:23","window_to":"2026-10-05 22:00:24"} 
[2026-10-05 22:00:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 22:00:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 22:00:43] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-05 21:00:42","window_to":"2026-10-05 22:00:42"} 
[2026-10-05 22:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 22:00:23","page":1} 
[2026-10-05 22:15:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 21:15:19","window_to":"2026-10-05 22:15:20"} 
[2026-10-05 22:15:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 22:15:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 22:30:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 21:30:25","window_to":"2026-10-05 22:30:25"} 
[2026-10-05 22:30:26] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 22:15:19","page":1} 
[2026-10-05 22:30:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 22:30:28] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 22:45:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 22:30:25","page":1} 
[2026-10-05 22:45:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 21:45:22","window_to":"2026-10-05 22:45:22"} 
[2026-10-05 22:45:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 22:45:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 23:00:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 22:45:21","page":1} 
[2026-10-05 23:00:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 22:00:24","window_to":"2026-10-05 23:00:24"} 
[2026-10-05 23:00:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 23:00:27] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 23:00:45] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-05 22:00:45","window_to":"2026-10-05 23:00:45"} 
[2026-10-05 23:15:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 23:00:25","page":1} 
[2026-10-05 23:15:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 22:15:20","window_to":"2026-10-05 23:15:20"} 
[2026-10-05 23:15:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 23:15:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 23:30:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 23:15:19","page":1} 
[2026-10-05 23:30:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 22:30:23","window_to":"2026-10-05 23:30:23"} 
[2026-10-05 23:30:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 23:30:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-05 23:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 22:45:19","window_to":"2026-10-05 23:45:19"} 
[2026-10-05 23:45:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 23:30:23","page":1} 
[2026-10-05 23:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-05 23:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 00:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-05 23:45:20","page":1} 
[2026-10-06 00:00:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 23:00:23","window_to":"2026-10-06 00:00:24"} 
[2026-10-06 00:00:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 00:00:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 00:00:48] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-05 23:00:48","window_to":"2026-10-06 00:00:48"} 
[2026-10-06 00:00:49] local.INFO: Student payment status check queued {"batches":1,"students":56} 
[2026-10-06 00:00:49] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_10_06_00_00_48.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-10-06 00:00:55] local.INFO: Student payment status cron evaluated {"student_id":5,"admission_no":"26/000001","outstanding_amount":24000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":13,"admission_no":"26/000009","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":14,"admission_no":"26/000010","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":16,"admission_no":"26/000012","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:00:57] local.INFO: Student payment status cron evaluated {"student_id":17,"admission_no":"26/000013","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:00:57] local.INFO: Student payment status cron evaluated {"student_id":20,"admission_no":"26/000016","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:00:58] local.INFO: Student payment status cron evaluated {"student_id":31,"admission_no":"26/000027","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:00:58] local.INFO: Student payment status cron evaluated {"student_id":32,"admission_no":"26/000028","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:00:59] local.INFO: Student payment status cron evaluated {"student_id":33,"admission_no":"26/000029","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:00:59] local.INFO: Student payment status cron evaluated {"student_id":34,"admission_no":"26/000030","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:00] local.INFO: Student payment status cron evaluated {"student_id":35,"admission_no":"26/000031","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:00] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_10_06_00_00_48.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-10-06 00:01:00] local.INFO: Student payment status cron evaluated {"student_id":23,"admission_no":"26/000019","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:01] local.INFO: Student payment status cron evaluated {"student_id":26,"admission_no":"26/000022","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:01] local.INFO: Student payment status cron evaluated {"student_id":28,"admission_no":"26/000024","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:01] local.INFO: Student payment status cron evaluated {"student_id":36,"admission_no":"26/000032","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:02] local.INFO: Student payment status cron evaluated {"student_id":37,"admission_no":"26/000033","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:03] local.INFO: Student payment status cron evaluated {"student_id":38,"admission_no":"26/000034","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:04] local.INFO: Student payment status cron evaluated {"student_id":39,"admission_no":"26/000035","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:05] local.INFO: Student payment status cron evaluated {"student_id":40,"admission_no":"26/000036","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:05] local.INFO: Student payment status cron evaluated {"student_id":43,"admission_no":"26/000039","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:06] local.INFO: Student payment status cron evaluated {"student_id":44,"admission_no":"26/000040","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:06] local.INFO: Student payment status cron evaluated {"student_id":45,"admission_no":"26/000041","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:09] local.INFO: Student payment status cron evaluated {"student_id":46,"admission_no":"26/000042","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:09] local.INFO: Student payment status cron evaluated {"student_id":47,"admission_no":"26/000043","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:10] local.INFO: Student payment status cron evaluated {"student_id":50,"admission_no":"26/000046","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:10] local.INFO: Student payment status cron evaluated {"student_id":51,"admission_no":"26/000047","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:11] local.INFO: Student payment status cron evaluated {"student_id":52,"admission_no":"26/000048","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:12] local.INFO: Student payment status cron evaluated {"student_id":53,"admission_no":"26/000049","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:12] local.INFO: Student payment status cron evaluated {"student_id":54,"admission_no":"26/000050","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:13] local.INFO: Student payment status cron evaluated {"student_id":55,"admission_no":"26/000051","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:13] local.INFO: Student payment status cron evaluated {"student_id":56,"admission_no":"26/000052","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:14] local.INFO: Student payment status cron evaluated {"student_id":57,"admission_no":"26/000053","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:14] local.INFO: Student payment status cron evaluated {"student_id":59,"admission_no":"26/000055","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:15] local.INFO: Student payment status cron evaluated {"student_id":61,"admission_no":"26/000057","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:15] local.INFO: Student payment status cron evaluated {"student_id":63,"admission_no":"26/000059","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:16] local.INFO: Student payment status cron evaluated {"student_id":64,"admission_no":"26/000060","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:16] local.INFO: Student payment status cron evaluated {"student_id":65,"admission_no":"26/000061","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:17] local.INFO: Student payment status cron evaluated {"student_id":66,"admission_no":"26/000062","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:17] local.INFO: Student payment status cron evaluated {"student_id":67,"admission_no":"26/000063","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:17] local.INFO: Student payment status cron evaluated {"student_id":68,"admission_no":"26/000064","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:18] local.INFO: Student payment status cron evaluated {"student_id":69,"admission_no":"26/000065","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:18] local.INFO: Student payment status cron evaluated {"student_id":70,"admission_no":"26/000066","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:19] local.INFO: Student payment status cron evaluated {"student_id":72,"admission_no":"26/000068","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:19] local.INFO: Student payment status cron evaluated {"student_id":73,"admission_no":"26/000069","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:19] local.INFO: Student payment status cron evaluated {"student_id":74,"admission_no":"26/000070","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:19] local.INFO: Student payment status cron evaluated {"student_id":75,"admission_no":"26/000071","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:20] local.INFO: Student payment status cron evaluated {"student_id":76,"admission_no":"26/000072","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:20] local.INFO: Student payment status cron evaluated {"student_id":77,"admission_no":"26/000073","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:20] local.INFO: Student payment status cron evaluated {"student_id":78,"admission_no":"26/000074","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:21] local.INFO: Student payment status cron evaluated {"student_id":80,"admission_no":"26/000076","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:21] local.INFO: Student payment status cron evaluated {"student_id":8,"admission_no":"26/000004","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:21] local.INFO: Student payment status cron evaluated {"student_id":9,"admission_no":"26/000005","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:21] local.INFO: Student payment status cron evaluated {"student_id":22,"admission_no":"26/000018","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:21] local.INFO: Student payment status cron evaluated {"student_id":79,"admission_no":"26/000075","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:21] local.INFO: Student payment status cron evaluated {"student_id":81,"admission_no":"26/000077","outstanding_amount":10000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:01:21] local.INFO: Student payment status cron evaluated {"student_id":83,"admission_no":"26/000078","outstanding_amount":12000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-06 00:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 23:15:18","window_to":"2026-10-06 00:15:19"} 
[2026-10-06 00:15:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 00:00:22","page":1} 
[2026-10-06 00:15:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 00:15:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 00:30:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 00:15:20","page":1} 
[2026-10-06 00:30:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 00:30:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 23:30:23","window_to":"2026-10-06 00:30:23"} 
[2026-10-06 00:30:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 00:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-05 23:45:19","window_to":"2026-10-06 00:45:19"} 
[2026-10-06 00:45:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 00:30:22","page":1} 
[2026-10-06 00:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 00:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 01:00:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 00:45:20","page":1} 
[2026-10-06 01:00:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 00:00:22","window_to":"2026-10-06 01:00:23"} 
[2026-10-06 01:00:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 01:00:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 01:00:49] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-06 00:00:48","window_to":"2026-10-06 01:00:48"} 
[2026-10-06 01:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 00:15:19","window_to":"2026-10-06 01:15:19"} 
[2026-10-06 01:15:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 01:00:22","page":1} 
[2026-10-06 01:15:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 01:15:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 01:30:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 00:30:20","window_to":"2026-10-06 01:30:20"} 
[2026-10-06 01:30:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 01:15:20","page":1} 
[2026-10-06 01:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 01:30:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 01:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 00:45:18","window_to":"2026-10-06 01:45:18"} 
[2026-10-06 01:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 01:30:21","page":1} 
[2026-10-06 01:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 01:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 02:00:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 01:00:22","window_to":"2026-10-06 02:00:22"} 
[2026-10-06 02:00:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 01:45:19","page":1} 
[2026-10-06 02:00:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 02:00:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 02:00:42] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-06 01:00:41","window_to":"2026-10-06 02:00:41"} 
[2026-10-06 02:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 01:15:18","window_to":"2026-10-06 02:15:18"} 
[2026-10-06 02:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 02:00:23","page":1} 
[2026-10-06 02:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 02:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 02:30:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 01:30:20","window_to":"2026-10-06 02:30:21"} 
[2026-10-06 02:30:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 02:15:18","page":1} 
[2026-10-06 02:30:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 02:30:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 02:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 02:30:21","page":1} 
[2026-10-06 02:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 01:45:19","window_to":"2026-10-06 02:45:19"} 
[2026-10-06 02:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 02:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 03:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 02:45:18","page":1} 
[2026-10-06 03:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 02:00:21","window_to":"2026-10-06 03:00:21"} 
[2026-10-06 03:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 03:00:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 03:00:39] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-06 02:00:39","window_to":"2026-10-06 03:00:39"} 
[2026-10-06 03:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 02:15:18","window_to":"2026-10-06 03:15:18"} 
[2026-10-06 03:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 03:00:21","page":1} 
[2026-10-06 03:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 03:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 03:30:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 02:30:20","window_to":"2026-10-06 03:30:20"} 
[2026-10-06 03:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 03:15:18","page":1} 
[2026-10-06 03:30:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 03:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 03:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 03:30:20","page":1} 
[2026-10-06 03:45:17] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 02:45:17","window_to":"2026-10-06 03:45:17"} 
[2026-10-06 03:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 03:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 04:00:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 03:45:17","page":1} 
[2026-10-06 04:00:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 03:00:21","window_to":"2026-10-06 04:00:21"} 
[2026-10-06 04:00:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 04:00:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 04:00:38] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-06 03:00:38","window_to":"2026-10-06 04:00:38"} 
[2026-10-06 04:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 03:15:18","window_to":"2026-10-06 04:15:19"} 
[2026-10-06 04:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 04:00:21","page":1} 
[2026-10-06 04:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 04:15:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 04:30:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 04:15:19","page":1} 
[2026-10-06 04:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 04:30:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 04:30:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 03:30:23","window_to":"2026-10-06 04:30:23"} 
[2026-10-06 04:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 03:45:17","window_to":"2026-10-06 04:45:18"} 
[2026-10-06 04:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 04:30:21","page":1} 
[2026-10-06 04:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 04:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 05:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 04:45:18","page":1} 
[2026-10-06 05:00:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 04:00:22","window_to":"2026-10-06 05:00:22"} 
[2026-10-06 05:00:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 05:00:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 05:00:41] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-06 04:00:40","window_to":"2026-10-06 05:00:40"} 
[2026-10-06 05:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 05:00:22","page":1} 
[2026-10-06 05:15:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 05:15:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 05:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 04:15:19","window_to":"2026-10-06 05:15:19"} 
[2026-10-06 05:30:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 04:30:24","window_to":"2026-10-06 05:30:24"} 
[2026-10-06 05:30:26] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 05:15:18","page":1} 
[2026-10-06 05:30:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 05:30:27] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 05:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 04:45:18","window_to":"2026-10-06 05:45:18"} 
[2026-10-06 05:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 05:30:26","page":1} 
[2026-10-06 05:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 05:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 06:00:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 05:45:18","page":1} 
[2026-10-06 06:00:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 05:00:22","window_to":"2026-10-06 06:00:22"} 
[2026-10-06 06:00:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 06:00:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 06:00:42] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-06 05:00:42","window_to":"2026-10-06 06:00:42"} 
[2026-10-06 06:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 06:00:22","page":1} 
[2026-10-06 06:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 05:15:19","window_to":"2026-10-06 06:15:19"} 
[2026-10-06 06:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 06:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 06:30:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 05:30:21","window_to":"2026-10-06 06:30:21"} 
[2026-10-06 06:30:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 06:15:19","page":1} 
[2026-10-06 06:30:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 06:30:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 06:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 06:30:22","page":1} 
[2026-10-06 06:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 05:45:19","window_to":"2026-10-06 06:45:19"} 
[2026-10-06 06:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 06:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 07:00:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 06:00:23","window_to":"2026-10-06 07:00:23"} 
[2026-10-06 07:00:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 06:45:19","page":1} 
[2026-10-06 07:00:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 07:00:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 07:00:42] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-06 06:00:42","window_to":"2026-10-06 07:00:42"} 
[2026-10-06 07:15:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 06:15:21","window_to":"2026-10-06 07:15:21"} 
[2026-10-06 07:15:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 07:00:24","page":1} 
[2026-10-06 07:15:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 07:15:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 07:30:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 07:15:22","page":1} 
[2026-10-06 07:30:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 06:30:21","window_to":"2026-10-06 07:30:21"} 
[2026-10-06 07:30:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 07:30:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 07:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 06:45:18","window_to":"2026-10-06 07:45:19"} 
[2026-10-06 07:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 07:30:20","page":1} 
[2026-10-06 07:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 07:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 08:00:27] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 07:00:26","window_to":"2026-10-06 08:00:26"} 
[2026-10-06 08:00:28] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 07:45:19","page":1} 
[2026-10-06 08:00:30] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 08:00:31] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 08:00:50] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-06 07:00:50","window_to":"2026-10-06 08:00:50"} 
[2026-10-06 08:00:52] local.INFO: Payment reminders queued {"batches":1,"students":56} 
[2026-10-06 08:15:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 07:15:22","window_to":"2026-10-06 08:15:22"} 
[2026-10-06 08:15:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 08:00:28","page":1} 
[2026-10-06 08:15:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 08:15:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 08:30:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 08:15:24","page":1} 
[2026-10-06 08:30:26] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 07:30:26","window_to":"2026-10-06 08:30:26"} 
[2026-10-06 08:30:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 08:30:27] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 08:45:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 07:45:22","window_to":"2026-10-06 08:45:22"} 
[2026-10-06 08:45:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 08:30:25","page":1} 
[2026-10-06 08:45:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 08:45:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 09:00:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 08:45:23","page":1} 
[2026-10-06 09:00:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 08:00:24","window_to":"2026-10-06 09:00:24"} 
[2026-10-06 09:00:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 09:00:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 09:00:45] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-06 08:00:44","window_to":"2026-10-06 09:00:44"} 
[2026-10-06 09:15:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 08:15:21","window_to":"2026-10-06 09:15:21"} 
[2026-10-06 09:15:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 09:00:23","page":1} 
[2026-10-06 09:15:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 09:15:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 09:30:28] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 08:30:27","window_to":"2026-10-06 09:30:28"} 
[2026-10-06 09:30:29] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 09:15:23","page":1} 
[2026-10-06 09:30:31] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 09:30:32] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 09:45:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 08:45:21","window_to":"2026-10-06 09:45:21"} 
[2026-10-06 09:45:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 09:30:29","page":1} 
[2026-10-06 09:45:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 09:45:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 10:00:28] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 09:45:22","page":1} 
[2026-10-06 10:00:29] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 09:00:28","window_to":"2026-10-06 10:00:28"} 
[2026-10-06 10:00:30] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 10:00:30] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 10:00:51] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-06 09:00:50","window_to":"2026-10-06 10:00:50"} 
[2026-10-06 10:15:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 10:00:27","page":1} 
[2026-10-06 10:15:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 09:15:23","window_to":"2026-10-06 10:15:23"} 
[2026-10-06 10:15:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 10:15:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 10:30:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 10:15:22","page":1} 
[2026-10-06 10:30:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 09:30:25","window_to":"2026-10-06 10:30:25"} 
[2026-10-06 10:30:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 10:30:27] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 10:45:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 10:30:24","page":1} 
[2026-10-06 10:45:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 09:45:23","window_to":"2026-10-06 10:45:23"} 
[2026-10-06 10:45:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 10:45:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 11:00:26] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 10:45:22","page":1} 
[2026-10-06 11:00:27] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 10:00:26","window_to":"2026-10-06 11:00:26"} 
[2026-10-06 11:00:28] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 11:00:29] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 11:00:46] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-06 10:00:45","window_to":"2026-10-06 11:00:45"} 
[2026-10-06 11:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 11:00:26","page":1} 
[2026-10-06 11:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 10:15:19","window_to":"2026-10-06 11:15:19"} 
[2026-10-06 11:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 11:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 11:30:26] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 10:30:25","window_to":"2026-10-06 11:30:26"} 
[2026-10-06 11:30:27] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 11:15:18","page":1} 
[2026-10-06 11:30:29] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 11:30:29] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 11:45:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 11:30:27","page":1} 
[2026-10-06 11:45:26] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 10:45:25","window_to":"2026-10-06 11:45:25"} 
[2026-10-06 11:45:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 11:45:27] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 12:00:28] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 11:45:25","page":1} 
[2026-10-06 12:00:29] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 11:00:29","window_to":"2026-10-06 12:00:29"} 
[2026-10-06 12:00:30] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 12:00:30] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 12:00:58] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_10_06_12_00_57.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-10-06 12:00:58] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-06 11:00:58","window_to":"2026-10-06 12:00:58"} 
[2026-10-06 12:01:16] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_10_06_12_00_57.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-10-06 12:15:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 12:00:28","page":1} 
[2026-10-06 12:15:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 11:15:22","window_to":"2026-10-06 12:15:23"} 
[2026-10-06 12:15:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 12:15:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 12:30:28] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 11:30:28","window_to":"2026-10-06 12:30:28"} 
[2026-10-06 12:30:29] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 12:15:22","page":1} 
[2026-10-06 12:30:31] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 12:30:32] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 12:45:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 11:45:21","window_to":"2026-10-06 12:45:22"} 
[2026-10-06 12:45:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 12:30:29","page":1} 
[2026-10-06 12:45:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 12:45:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 13:00:28] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 12:45:23","page":1} 
[2026-10-06 13:00:29] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 12:00:28","window_to":"2026-10-06 13:00:28"} 
[2026-10-06 13:00:31] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 13:00:32] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 13:00:52] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-06 12:00:52","window_to":"2026-10-06 13:00:52"} 
[2026-10-06 13:15:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 12:15:22","window_to":"2026-10-06 13:15:22"} 
[2026-10-06 13:15:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 13:00:28","page":1} 
[2026-10-06 13:15:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 13:15:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 13:30:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 13:15:22","page":1} 
[2026-10-06 13:30:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 12:30:24","window_to":"2026-10-06 13:30:24"} 
[2026-10-06 13:30:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 13:30:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 13:45:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 12:45:22","window_to":"2026-10-06 13:45:23"} 
[2026-10-06 13:45:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 13:30:24","page":1} 
[2026-10-06 13:45:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 13:45:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 14:00:26] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 13:45:23","page":1} 
[2026-10-06 14:00:27] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 13:00:26","window_to":"2026-10-06 14:00:26"} 
[2026-10-06 14:00:28] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 14:00:29] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 14:00:55] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-06 13:00:54","window_to":"2026-10-06 14:00:55"} 
[2026-10-06 14:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 13:15:18","window_to":"2026-10-06 14:15:18"} 
[2026-10-06 14:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 14:00:25","page":1} 
[2026-10-06 14:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 14:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 14:30:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 14:15:18","page":1} 
[2026-10-06 14:30:26] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 13:30:25","window_to":"2026-10-06 14:30:26"} 
[2026-10-06 14:30:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 14:30:27] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 14:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 14:30:25","page":1} 
[2026-10-06 14:45:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 13:45:20","window_to":"2026-10-06 14:45:20"} 
[2026-10-06 14:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 14:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 15:00:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 14:45:19","page":1} 
[2026-10-06 15:00:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 14:00:22","window_to":"2026-10-06 15:00:23"} 
[2026-10-06 15:00:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 15:00:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 15:00:44] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-06 14:00:44","window_to":"2026-10-06 15:00:44"} 
[2026-10-06 15:15:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 15:00:23","page":1} 
[2026-10-06 15:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 14:15:18","window_to":"2026-10-06 15:15:18"} 
[2026-10-06 15:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 15:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 15:30:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 14:30:23","window_to":"2026-10-06 15:30:23"} 
[2026-10-06 15:30:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 15:15:18","page":1} 
[2026-10-06 15:30:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 15:30:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 15:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 14:45:20","window_to":"2026-10-06 15:45:20"} 
[2026-10-06 15:45:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 15:30:23","page":1} 
[2026-10-06 15:45:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 15:45:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 16:00:27] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 15:45:20","page":1} 
[2026-10-06 16:00:27] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 15:00:26","window_to":"2026-10-06 16:00:26"} 
[2026-10-06 16:00:29] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 16:00:29] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 16:00:46] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-06 15:00:46","window_to":"2026-10-06 16:00:46"} 
[2026-10-06 16:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 15:15:18","window_to":"2026-10-06 16:15:18"} 
[2026-10-06 16:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 16:00:26","page":1} 
[2026-10-06 16:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 16:15:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 16:30:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 15:30:22","window_to":"2026-10-06 16:30:22"} 
[2026-10-06 16:30:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 16:15:19","page":1} 
[2026-10-06 16:30:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 16:30:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 16:45:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 16:30:22","page":1} 
[2026-10-06 16:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 15:45:19","window_to":"2026-10-06 16:45:19"} 
[2026-10-06 16:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 16:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 17:00:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 16:45:20","page":1} 
[2026-10-06 17:00:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 16:00:24","window_to":"2026-10-06 17:00:25"} 
[2026-10-06 17:00:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 17:00:27] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 17:00:44] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-06 16:00:44","window_to":"2026-10-06 17:00:44"} 
[2026-10-06 17:15:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 16:15:18","window_to":"2026-10-06 17:15:18"} 
[2026-10-06 17:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 17:00:25","page":1} 
[2026-10-06 17:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 17:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 17:30:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 17:15:18","page":1} 
[2026-10-06 17:30:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 16:30:22","window_to":"2026-10-06 17:30:22"} 
[2026-10-06 17:30:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 17:30:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 17:45:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 17:30:22","page":1} 
[2026-10-06 17:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 16:45:20","window_to":"2026-10-06 17:45:20"} 
[2026-10-06 17:45:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 17:45:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 18:00:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 17:00:24","window_to":"2026-10-06 18:00:24"} 
[2026-10-06 18:00:26] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 17:45:20","page":1} 
[2026-10-06 18:00:28] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 18:00:28] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 18:00:46] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-06 17:00:46","window_to":"2026-10-06 18:00:46"} 
[2026-10-06 18:15:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 17:15:20","window_to":"2026-10-06 18:15:20"} 
[2026-10-06 18:15:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 18:00:25","page":1} 
[2026-10-06 18:15:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 18:15:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 18:30:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 17:30:23","window_to":"2026-10-06 18:30:23"} 
[2026-10-06 18:30:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 18:15:21","page":1} 
[2026-10-06 18:30:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 18:30:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 18:45:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 18:30:24","page":1} 
[2026-10-06 18:45:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 17:45:21","window_to":"2026-10-06 18:45:21"} 
[2026-10-06 18:45:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 18:45:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 19:00:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 18:00:24","window_to":"2026-10-06 19:00:24"} 
[2026-10-06 19:00:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 18:45:21","page":1} 
[2026-10-06 19:00:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 19:00:27] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 19:00:45] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-06 18:00:45","window_to":"2026-10-06 19:00:45"} 
[2026-10-06 19:15:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 18:15:21","window_to":"2026-10-06 19:15:21"} 
[2026-10-06 19:15:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 19:00:24","page":1} 
[2026-10-06 19:15:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 19:15:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 19:30:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 18:30:22","window_to":"2026-10-06 19:30:22"} 
[2026-10-06 19:30:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 19:15:21","page":1} 
[2026-10-06 19:30:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 19:30:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 19:45:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 18:45:20","window_to":"2026-10-06 19:45:20"} 
[2026-10-06 19:45:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 19:30:23","page":1} 
[2026-10-06 19:45:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 19:45:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 20:00:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 19:45:21","page":1} 
[2026-10-06 20:00:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 19:00:25","window_to":"2026-10-06 20:00:25"} 
[2026-10-06 20:00:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 20:00:27] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 20:00:47] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-06 19:00:47","window_to":"2026-10-06 20:00:47"} 
[2026-10-06 20:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 20:00:24","page":1} 
[2026-10-06 20:15:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 19:15:19","window_to":"2026-10-06 20:15:19"} 
[2026-10-06 20:15:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 20:15:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 20:30:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 19:30:23","window_to":"2026-10-06 20:30:24"} 
[2026-10-06 20:30:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 20:15:19","page":1} 
[2026-10-06 20:30:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 20:30:27] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 20:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 19:45:19","window_to":"2026-10-06 20:45:19"} 
[2026-10-06 20:45:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 20:30:24","page":1} 
[2026-10-06 20:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 20:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 21:00:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 20:00:23","window_to":"2026-10-06 21:00:24"} 
[2026-10-06 21:00:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 20:45:20","page":1} 
[2026-10-06 21:00:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 21:00:27] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 21:00:45] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-06 20:00:45","window_to":"2026-10-06 21:00:45"} 
[2026-10-06 21:15:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 21:00:25","page":1} 
[2026-10-06 21:15:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 20:15:22","window_to":"2026-10-06 21:15:22"} 
[2026-10-06 21:15:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 21:15:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 21:30:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 20:30:23","window_to":"2026-10-06 21:30:23"} 
[2026-10-06 21:30:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 21:15:22","page":1} 
[2026-10-06 21:30:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 21:30:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 21:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 21:30:24","page":1} 
[2026-10-06 21:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 20:45:19","window_to":"2026-10-06 21:45:19"} 
[2026-10-06 21:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 21:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 22:00:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 21:00:23","window_to":"2026-10-06 22:00:23"} 
[2026-10-06 22:00:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 21:45:19","page":1} 
[2026-10-06 22:00:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 22:00:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 22:00:43] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-06 21:00:42","window_to":"2026-10-06 22:00:42"} 
[2026-10-06 22:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 22:00:24","page":1} 
[2026-10-06 22:15:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 21:15:19","window_to":"2026-10-06 22:15:19"} 
[2026-10-06 22:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 22:15:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 22:30:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 22:15:19","page":1} 
[2026-10-06 22:30:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 21:30:25","window_to":"2026-10-06 22:30:25"} 
[2026-10-06 22:30:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 22:30:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 22:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 22:30:24","page":1} 
[2026-10-06 22:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 21:45:19","window_to":"2026-10-06 22:45:19"} 
[2026-10-06 22:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 22:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 23:00:26] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 22:45:19","page":1} 
[2026-10-06 23:00:26] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 22:00:25","window_to":"2026-10-06 23:00:25"} 
[2026-10-06 23:00:28] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 23:00:29] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 23:00:49] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-06 22:00:48","window_to":"2026-10-06 23:00:49"} 
[2026-10-06 23:15:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 23:00:25","page":1} 
[2026-10-06 23:15:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 22:15:20","window_to":"2026-10-06 23:15:20"} 
[2026-10-06 23:15:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 23:15:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 23:30:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 22:30:23","window_to":"2026-10-06 23:30:24"} 
[2026-10-06 23:30:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 23:15:20","page":1} 
[2026-10-06 23:30:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 23:30:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-06 23:45:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 23:30:24","page":1} 
[2026-10-06 23:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 22:45:20","window_to":"2026-10-06 23:45:20"} 
[2026-10-06 23:45:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-06 23:45:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 00:00:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-06 23:45:20","page":1} 
[2026-10-07 00:00:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 23:00:23","window_to":"2026-10-07 00:00:23"} 
[2026-10-07 00:00:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 00:00:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 00:00:49] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-06 23:00:47","window_to":"2026-10-07 00:00:48"} 
[2026-10-07 00:00:49] local.INFO: Student payment status check queued {"batches":1,"students":56} 
[2026-10-07 00:00:50] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_10_07_00_00_49.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-10-07 00:00:54] local.INFO: Student payment status cron evaluated {"student_id":5,"admission_no":"26/000001","outstanding_amount":24000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:00:54] local.INFO: Student payment status cron evaluated {"student_id":13,"admission_no":"26/000009","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:00:55] local.INFO: Student payment status cron evaluated {"student_id":14,"admission_no":"26/000010","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:00:55] local.INFO: Student payment status cron evaluated {"student_id":16,"admission_no":"26/000012","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:00:56] local.INFO: Student payment status cron evaluated {"student_id":17,"admission_no":"26/000013","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:00:57] local.INFO: Student payment status cron evaluated {"student_id":20,"admission_no":"26/000016","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:00:57] local.INFO: Student payment status cron evaluated {"student_id":31,"admission_no":"26/000027","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:00:58] local.INFO: Student payment status cron evaluated {"student_id":32,"admission_no":"26/000028","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:00:58] local.INFO: Student payment status cron evaluated {"student_id":33,"admission_no":"26/000029","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:00:59] local.INFO: Student payment status cron evaluated {"student_id":34,"admission_no":"26/000030","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:00] local.INFO: Student payment status cron evaluated {"student_id":35,"admission_no":"26/000031","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:01] local.INFO: Student payment status cron evaluated {"student_id":23,"admission_no":"26/000019","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:01] local.INFO: Student payment status cron evaluated {"student_id":26,"admission_no":"26/000022","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:03] local.INFO: Student payment status cron evaluated {"student_id":28,"admission_no":"26/000024","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:04] local.INFO: Student payment status cron evaluated {"student_id":36,"admission_no":"26/000032","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:05] local.INFO: Student payment status cron evaluated {"student_id":37,"admission_no":"26/000033","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:06] local.INFO: Student payment status cron evaluated {"student_id":38,"admission_no":"26/000034","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:06] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_10_07_00_00_49.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-10-07 00:01:06] local.INFO: Student payment status cron evaluated {"student_id":39,"admission_no":"26/000035","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:07] local.INFO: Student payment status cron evaluated {"student_id":40,"admission_no":"26/000036","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:08] local.INFO: Student payment status cron evaluated {"student_id":43,"admission_no":"26/000039","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:09] local.INFO: Student payment status cron evaluated {"student_id":44,"admission_no":"26/000040","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:09] local.INFO: Student payment status cron evaluated {"student_id":45,"admission_no":"26/000041","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:12] local.INFO: Student payment status cron evaluated {"student_id":46,"admission_no":"26/000042","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:12] local.INFO: Student payment status cron evaluated {"student_id":47,"admission_no":"26/000043","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:13] local.INFO: Student payment status cron evaluated {"student_id":50,"admission_no":"26/000046","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:13] local.INFO: Student payment status cron evaluated {"student_id":51,"admission_no":"26/000047","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:14] local.INFO: Student payment status cron evaluated {"student_id":52,"admission_no":"26/000048","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:14] local.INFO: Student payment status cron evaluated {"student_id":53,"admission_no":"26/000049","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:15] local.INFO: Student payment status cron evaluated {"student_id":54,"admission_no":"26/000050","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:16] local.INFO: Student payment status cron evaluated {"student_id":55,"admission_no":"26/000051","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:16] local.INFO: Student payment status cron evaluated {"student_id":56,"admission_no":"26/000052","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:17] local.INFO: Student payment status cron evaluated {"student_id":57,"admission_no":"26/000053","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:17] local.INFO: Student payment status cron evaluated {"student_id":59,"admission_no":"26/000055","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:18] local.INFO: Student payment status cron evaluated {"student_id":61,"admission_no":"26/000057","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:18] local.INFO: Student payment status cron evaluated {"student_id":63,"admission_no":"26/000059","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:18] local.INFO: Student payment status cron evaluated {"student_id":64,"admission_no":"26/000060","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:19] local.INFO: Student payment status cron evaluated {"student_id":65,"admission_no":"26/000061","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:19] local.INFO: Student payment status cron evaluated {"student_id":66,"admission_no":"26/000062","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:19] local.INFO: Student payment status cron evaluated {"student_id":67,"admission_no":"26/000063","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:20] local.INFO: Student payment status cron evaluated {"student_id":68,"admission_no":"26/000064","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:20] local.INFO: Student payment status cron evaluated {"student_id":69,"admission_no":"26/000065","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:20] local.INFO: Student payment status cron evaluated {"student_id":70,"admission_no":"26/000066","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:21] local.INFO: Student payment status cron evaluated {"student_id":72,"admission_no":"26/000068","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:21] local.INFO: Student payment status cron evaluated {"student_id":73,"admission_no":"26/000069","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:22] local.INFO: Student payment status cron evaluated {"student_id":74,"admission_no":"26/000070","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:22] local.INFO: Student payment status cron evaluated {"student_id":75,"admission_no":"26/000071","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:22] local.INFO: Student payment status cron evaluated {"student_id":76,"admission_no":"26/000072","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:23] local.INFO: Student payment status cron evaluated {"student_id":77,"admission_no":"26/000073","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:23] local.INFO: Student payment status cron evaluated {"student_id":78,"admission_no":"26/000074","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:23] local.INFO: Student payment status cron evaluated {"student_id":80,"admission_no":"26/000076","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:24] local.INFO: Student payment status cron evaluated {"student_id":8,"admission_no":"26/000004","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:24] local.INFO: Student payment status cron evaluated {"student_id":9,"admission_no":"26/000005","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:24] local.INFO: Student payment status cron evaluated {"student_id":22,"admission_no":"26/000018","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:24] local.INFO: Student payment status cron evaluated {"student_id":79,"admission_no":"26/000075","outstanding_amount":27000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:24] local.INFO: Student payment status cron evaluated {"student_id":81,"admission_no":"26/000077","outstanding_amount":10000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:01:24] local.INFO: Student payment status cron evaluated {"student_id":83,"admission_no":"26/000078","outstanding_amount":12000.0,"due_amount":0.0,"due_items_count":0,"due_percentage":0.0,"max_due_percentage":100.0,"is_in_auto_grace":false,"auto_grace_days":3,"latest_past_due_date":null,"auto_grace_end_date":null,"current_status":"active","resolved_status":"active","dry_run":false} 
[2026-10-07 00:15:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 00:00:23","page":1} 
[2026-10-07 00:15:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 23:15:22","window_to":"2026-10-07 00:15:22"} 
[2026-10-07 00:15:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 00:15:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 00:30:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 00:15:22","page":1} 
[2026-10-07 00:30:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 23:30:22","window_to":"2026-10-07 00:30:22"} 
[2026-10-07 00:30:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 00:30:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 00:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 00:30:22","page":1} 
[2026-10-07 00:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-06 23:45:20","window_to":"2026-10-07 00:45:20"} 
[2026-10-07 00:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 00:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 01:00:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 00:45:19","page":1} 
[2026-10-07 01:00:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 00:00:24","window_to":"2026-10-07 01:00:25"} 
[2026-10-07 01:00:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 01:00:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 01:00:49] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-07 00:00:47","window_to":"2026-10-07 01:00:48"} 
[2026-10-07 01:15:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 01:00:24","page":1} 
[2026-10-07 01:15:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 00:15:19","window_to":"2026-10-07 01:15:20"} 
[2026-10-07 01:15:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 01:15:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 01:30:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 01:15:20","page":1} 
[2026-10-07 01:30:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 00:30:22","window_to":"2026-10-07 01:30:22"} 
[2026-10-07 01:30:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 01:30:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 01:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 00:45:18","window_to":"2026-10-07 01:45:18"} 
[2026-10-07 01:45:18] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 01:30:23","page":1} 
[2026-10-07 01:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 01:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 02:00:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 01:00:22","window_to":"2026-10-07 02:00:22"} 
[2026-10-07 02:00:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 01:45:18","page":1} 
[2026-10-07 02:00:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 02:00:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 02:00:42] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-07 01:00:41","window_to":"2026-10-07 02:00:42"} 
[2026-10-07 02:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 02:00:23","page":1} 
[2026-10-07 02:15:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 02:15:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 02:15:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 01:15:20","window_to":"2026-10-07 02:15:21"} 
[2026-10-07 02:30:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 01:30:22","window_to":"2026-10-07 02:30:22"} 
[2026-10-07 02:30:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 02:15:19","page":1} 
[2026-10-07 02:30:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 02:30:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 02:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 01:45:18","window_to":"2026-10-07 02:45:19"} 
[2026-10-07 02:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 02:30:22","page":1} 
[2026-10-07 02:45:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 02:45:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 03:00:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 02:45:19","page":1} 
[2026-10-07 03:00:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 02:00:22","window_to":"2026-10-07 03:00:23"} 
[2026-10-07 03:00:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 03:00:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 03:00:42] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-07 02:00:42","window_to":"2026-10-07 03:00:42"} 
[2026-10-07 03:15:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 03:00:23","page":1} 
[2026-10-07 03:15:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 02:15:19","window_to":"2026-10-07 03:15:19"} 
[2026-10-07 03:15:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 03:15:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 03:30:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 02:30:22","window_to":"2026-10-07 03:30:22"} 
[2026-10-07 03:30:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 03:15:19","page":1} 
[2026-10-07 03:30:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 03:30:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 03:45:18] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 02:45:18","window_to":"2026-10-07 03:45:18"} 
[2026-10-07 03:45:19] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 03:30:22","page":1} 
[2026-10-07 03:45:20] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 03:45:20] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 04:00:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 03:45:19","page":1} 
[2026-10-07 04:00:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 03:00:23","window_to":"2026-10-07 04:00:24"} 
[2026-10-07 04:00:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 04:00:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 04:00:43] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-07 03:00:43","window_to":"2026-10-07 04:00:43"} 
[2026-10-07 04:15:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 04:00:24","page":1} 
[2026-10-07 04:15:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 03:15:20","window_to":"2026-10-07 04:15:20"} 
[2026-10-07 04:15:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 04:15:22] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 04:30:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 04:15:20","page":1} 
[2026-10-07 04:30:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 03:30:23","window_to":"2026-10-07 04:30:23"} 
[2026-10-07 04:30:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 04:30:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 04:45:17] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 04:30:23","page":1} 
[2026-10-07 04:45:19] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 03:45:18","window_to":"2026-10-07 04:45:18"} 
[2026-10-07 04:45:19] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 04:45:19] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 05:00:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 04:00:23","window_to":"2026-10-07 05:00:23"} 
[2026-10-07 05:00:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 04:45:17","page":1} 
[2026-10-07 05:00:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 05:00:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 05:00:43] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-07 04:00:43","window_to":"2026-10-07 05:00:43"} 
[2026-10-07 05:15:20] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 05:00:24","page":1} 
[2026-10-07 05:15:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 04:15:20","window_to":"2026-10-07 05:15:20"} 
[2026-10-07 05:15:21] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 05:15:21] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 05:30:30] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 05:15:20","page":1} 
[2026-10-07 05:30:30] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 04:30:30","window_to":"2026-10-07 05:30:30"} 
[2026-10-07 05:30:32] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 05:30:33] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 05:45:20] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 04:45:19","window_to":"2026-10-07 05:45:20"} 
[2026-10-07 05:45:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 05:30:30","page":1} 
[2026-10-07 05:45:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 05:45:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 06:00:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 05:00:24","window_to":"2026-10-07 06:00:24"} 
[2026-10-07 06:00:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 05:45:21","page":1} 
[2026-10-07 06:00:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 06:00:27] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 06:00:45] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-07 05:00:44","window_to":"2026-10-07 06:00:45"} 
[2026-10-07 06:15:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 05:15:21","window_to":"2026-10-07 06:15:21"} 
[2026-10-07 06:15:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 06:00:25","page":1} 
[2026-10-07 06:15:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 06:15:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 06:30:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 05:30:25","window_to":"2026-10-07 06:30:25"} 
[2026-10-07 06:30:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 06:15:22","page":1} 
[2026-10-07 06:30:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 06:30:27] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 06:45:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 06:30:25","page":1} 
[2026-10-07 06:45:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 05:45:24","window_to":"2026-10-07 06:45:24"} 
[2026-10-07 06:45:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 06:45:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 07:00:26] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 06:45:24","page":1} 
[2026-10-07 07:00:27] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 06:00:26","window_to":"2026-10-07 07:00:26"} 
[2026-10-07 07:00:28] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 07:00:28] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 07:00:47] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-07 06:00:47","window_to":"2026-10-07 07:00:47"} 
[2026-10-07 07:15:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 07:00:26","page":1} 
[2026-10-07 07:15:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 06:15:24","window_to":"2026-10-07 07:15:24"} 
[2026-10-07 07:15:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 07:15:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 07:30:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 06:30:24","window_to":"2026-10-07 07:30:25"} 
[2026-10-07 07:30:26] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 07:15:22","page":1} 
[2026-10-07 07:30:28] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 07:30:28] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 07:45:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 07:30:26","page":1} 
[2026-10-07 07:45:26] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 06:45:26","window_to":"2026-10-07 07:45:26"} 
[2026-10-07 07:45:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 07:45:27] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 08:00:27] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 07:45:25","page":1} 
[2026-10-07 08:00:28] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 07:00:27","window_to":"2026-10-07 08:00:27"} 
[2026-10-07 08:00:30] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 08:00:30] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 08:00:55] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-07 07:00:54","window_to":"2026-10-07 08:00:54"} 
[2026-10-07 08:00:56] local.INFO: Payment reminders queued {"batches":1,"students":56} 
[2026-10-07 08:15:28] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 07:15:27","window_to":"2026-10-07 08:15:27"} 
[2026-10-07 08:15:28] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 08:00:27","page":1} 
[2026-10-07 08:15:31] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 08:15:31] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 08:30:29] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 08:15:28","page":1} 
[2026-10-07 08:30:30] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 07:30:30","window_to":"2026-10-07 08:30:30"} 
[2026-10-07 08:30:31] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 08:30:32] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 08:45:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 07:45:24","window_to":"2026-10-07 08:45:24"} 
[2026-10-07 08:45:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 08:30:29","page":1} 
[2026-10-07 08:45:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 08:45:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 09:00:27] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 08:00:26","window_to":"2026-10-07 09:00:27"} 
[2026-10-07 09:00:27] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 08:45:24","page":1} 
[2026-10-07 09:00:30] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 09:00:30] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 09:00:52] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-07 08:00:52","window_to":"2026-10-07 09:00:52"} 
[2026-10-07 09:15:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 09:00:27","page":1} 
[2026-10-07 09:15:26] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 08:15:25","window_to":"2026-10-07 09:15:26"} 
[2026-10-07 09:15:29] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 09:15:29] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 09:22:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:22:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:22:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:23:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:23:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:23:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:24:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:24:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:25:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:25:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:26:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:26:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:27:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:27:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:28:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:28:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:29:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:29:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:30:30] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 09:15:25","page":1} 
[2026-10-07 09:30:31] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 08:30:30","window_to":"2026-10-07 09:30:30"} 
[2026-10-07 09:30:33] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 09:30:33] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 09:30:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:30:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:30:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:31:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:31:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:32:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:32:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:33:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:33:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:34:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:34:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:35:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:35:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:36:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:36:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:37:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:37:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:38:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:38:55] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:39:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:39:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:40:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:40:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:40:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:41:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:41:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:42:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:42:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:43:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:43:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:44:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:44:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:45:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 09:30:30","page":1} 
[2026-10-07 09:45:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 08:45:22","window_to":"2026-10-07 09:45:23"} 
[2026-10-07 09:45:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 09:45:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 09:45:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:45:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:45:55] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:46:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:46:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:47:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:47:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:47:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:47:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:48:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:48:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:48:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:49:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:49:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:50:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:50:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:50:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:51:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:51:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:51:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:52:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:52:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:53:00] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1"}  
[2026-10-07 09:53:01] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null}  
[2026-10-07 09:53:13] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null,"branch_id":"4"}  
[2026-10-07 09:53:13] local.INFO: applyStudentFilters branch_id: 4  
[2026-10-07 09:53:34] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null,"branch_id":"4"}  
[2026-10-07 09:53:34] local.INFO: applyStudentFilters branch_id: 4  
[2026-10-07 09:53:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:53:36] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1"}  
[2026-10-07 09:53:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:54:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:54:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:54:38] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null,"branch_id":"1"}  
[2026-10-07 09:54:38] local.INFO: applyStudentFilters branch_id: 1  
[2026-10-07 09:55:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:56:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:56:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:57:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:57:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:57:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:58:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:58:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:58:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:59:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 09:59:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:00:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:00:28] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 09:45:23","page":1} 
[2026-10-07 10:00:29] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 09:00:28","window_to":"2026-10-07 10:00:28"} 
[2026-10-07 10:00:30] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 10:00:30] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 10:00:52] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-07 09:00:52","window_to":"2026-10-07 10:00:52"} 
[2026-10-07 10:00:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:01:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:01:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:01:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:02:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:02:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:03:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:03:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:03:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:04:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:04:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:04:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:05:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:06:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:06:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:07:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:07:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:08:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:08:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:09:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:09:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:10:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:10:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:11:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:11:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:12:55] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:12:55] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:13:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:13:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:14:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:14:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:15:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 10:00:28","page":1} 
[2026-10-07 10:15:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 09:15:23","window_to":"2026-10-07 10:15:23"} 
[2026-10-07 10:15:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 10:15:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 10:15:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:16:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:16:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:17:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:17:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:17:30] local.ERROR: Gmail API error: Gmail API settings not configured  
[2026-10-07 10:17:30] local.WARNING: Gmail failed for staff credentials email, trying Zepto Mail {"gmail_error":"Gmail API settings not configured"} 
[2026-10-07 10:17:30] local.ERROR: ZeptoMailer error: Zepto Mail API key or admin email not configured  
[2026-10-07 10:17:30] local.WARNING: Failed to send staff credentials email {"staff_id":30,"error":"Zepto Mail API key or admin email not configured"} 
[2026-10-07 10:17:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:17:31] local.INFO: No FCM tokens found for user {"notification_id":106,"user_id":112} 
[2026-10-07 10:17:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:17:31] local.INFO: No FCM tokens found for user {"notification_id":107,"user_id":1} 
[2026-10-07 10:17:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:17:31] local.INFO: No FCM tokens found for user {"notification_id":108,"user_id":2} 
[2026-10-07 10:17:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:17:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:18:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:18:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:18:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:18:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:18:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:18:38] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:18:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:19:06] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:19:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:19:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:19:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:19:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:19:43] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:19:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:20:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:20:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:20:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:20:38] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:20:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:20:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:21:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:21:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:21:22] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/inventory/standalone-assets","user_id":113,"user_reg_no":"STF001009","permissions":["inventory.standalone_assets.view"],"permission_ids":[14]} 
[2026-10-07 10:21:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:21:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:21:23] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/inventory/standalone-assets","user_id":113,"user_reg_no":"STF001009","permissions":["inventory.standalone_assets.view"],"permission_ids":[14]} 
[2026-10-07 10:21:39] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/inventory/stock-transfers","user_id":113,"user_reg_no":"STF001009","permissions":["inventory.transfers.view"],"permission_ids":[3]} 
[2026-10-07 10:21:39] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/inventory/stock-transfers/location-summaries","user_id":113,"user_reg_no":"STF001009","permissions":["inventory.transfers.view"],"permission_ids":[3]} 
[2026-10-07 10:22:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:22:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:22:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:22:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:22:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:22:55] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:22:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:22:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:23:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:23:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:23:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:23:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:24:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:24:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:24:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:24:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:25:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:25:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:25:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:25:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:25:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:25:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:25:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:25:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:25:47] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:25:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:26:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:26:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:26:43] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:26:43] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:26:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:27:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:27:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:27:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:27:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:27:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:27:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:28:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:28:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:28:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:28:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:28:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:28:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:28:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:28:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:28:55] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:29:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:29:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:29:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:29:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:30:00] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/branches","user_id":113,"user_reg_no":"STF001009","permissions":["academic.branches.view"],"permission_ids":[294]} 
[2026-10-07 10:30:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:30:29] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 09:30:28","window_to":"2026-10-07 10:30:28"} 
[2026-10-07 10:30:29] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 10:15:23","page":1} 
[2026-10-07 10:30:31] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 10:30:31] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 10:30:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:30:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:30:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:31:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:31:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:31:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:31:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:31:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:32:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:32:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:32:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:32:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:32:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:33:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:33:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:33:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:33:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:34:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:34:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:34:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:34:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:34:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:35:07] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:35:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:35:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:36:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:36:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:36:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:36:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:37:07] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:37:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:37:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:37:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:38:07] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:38:07] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:38:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:38:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:39:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:39:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:39:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:39:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:39:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:39:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:39:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:40:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:40:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:40:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:40:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:41:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:41:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:41:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:41:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:42:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:42:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:42:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:42:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:42:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:42:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:42:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:43:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:43:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:43:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:44:07] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:44:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:44:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:44:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:44:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:44:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:44:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:44:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:45:09] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:45:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 10:30:29","page":1} 
[2026-10-07 10:45:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 09:45:25","window_to":"2026-10-07 10:45:25"} 
[2026-10-07 10:45:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:45:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:45:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 10:45:28] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 10:45:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:45:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:46:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:46:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:46:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:46:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:46:38] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/branches","user_id":113,"user_reg_no":"STF001009","permissions":["academic.branches.view"],"permission_ids":[294]} 
[2026-10-07 10:47:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:47:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:47:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:47:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:48:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:48:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:48:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:48:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:48:58] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/branches","user_id":113,"user_reg_no":"STF001009","permissions":["academic.branches.view"],"permission_ids":[294]} 
[2026-10-07 10:48:59] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/branches","user_id":113,"user_reg_no":"STF001009","permissions":["academic.branches.view"],"permission_ids":[294]} 
[2026-10-07 10:49:07] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:49:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:49:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:49:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:49:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:49:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:50:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:50:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:50:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:50:48] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/class-schedules","user_id":113,"user_reg_no":"STF001009","permissions":["lms.class_schedules.view"],"permission_ids":[400]} 
[2026-10-07 10:51:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:51:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:51:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:51:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:52:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:52:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:52:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:52:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:53:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:53:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:53:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:53:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:54:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:54:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:54:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:54:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:54:55] local.WARNING: User does not have permission for route {"route":"POST /api/v1/admin/academic/holidays/calendar/sync","user_id":113,"user_reg_no":"STF001009","permissions":["academic.holidays.calendar.sync"],"permission_ids":[348]} 
[2026-10-07 10:54:56] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/academic/holidays/calendar","user_id":113,"user_reg_no":"STF001009","permissions":["academic.holidays.calendar.view"],"permission_ids":[347]} 
[2026-10-07 10:55:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:55:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:55:36] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/academic/makeup-sessions","user_id":113,"user_reg_no":"STF001009","permissions":["academic.makeup_sessions.view"],"permission_ids":[383]} 
[2026-10-07 10:55:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:55:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:56:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:56:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:56:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:56:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:57:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:57:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:57:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:57:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:57:36] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/branches","user_id":113,"user_reg_no":"STF001009","permissions":["academic.branches.view"],"permission_ids":[294]} 
[2026-10-07 10:58:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:58:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:58:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:58:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:58:32] local.ERROR: Error retrieving complete dashboard data: SQLSTATE[42703]: Undefined column: 7 ERROR:  column "branch_id" does not exist
LINE 1: ... "students"."id" = "enrollments"."student_id" and "branch_id...
                                                             ^ (Connection: pgsql, Host: 127.0.0.1, Port: 5432, Database: loyola_db, SQL: select count(*) as aggregate from "call_logs" where "created_at" between 2026-10-01 00:00:00 and 2026-10-31 23:59:59 and (exists (select * from "leads" where "call_logs"."lead_id" = "leads"."id" and "requested_branch" = 2 and "leads"."requested_branch" = 2 and "leads"."deleted_at" is null) or exists (select * from "students" where "call_logs"."student_id" = "students"."id" and exists (select * from "enrollments" where "students"."id" = "enrollments"."student_id" and "branch_id" = 2 and "enrollments"."deleted_at" is null) and ("students"."requested_branch" = 2 or exists (select * from "enrollments" where "students"."id" = "enrollments"."student_id" and exists (select * from "enrollments_details" where "enrollments"."id" = "enrollments_details"."enrollments_id" and ("enrollments_details"."branch_id" = 2 or exists (select * from "batches" where "enrollments_details"."batch_id" = "batches"."id" and "batches"."branch_id" = 2 and "batches"."deleted_at" is null)) and "enrollments_details"."deleted_at" is null) and "enrollments"."deleted_at" is null) or exists (select * from "enrollments" where "students"."id" = "enrollments"."student_id" and exists (select * from "enrollments_details" where "enrollments"."id" = "enrollments_details"."enrollments_id" and ("enrollments_details"."branch_id" = 2 or exists (select * from "batches" where "enrollments_details"."batch_id" = "batches"."id" and "batches"."branch_id" = 2 and "batches"."deleted_at" is null)) and "status" = active and "enrollments_details"."deleted_at" is null) and "enrollments"."deleted_at" is null)) and "students"."deleted_at" is null) or exists (select * from "users" where "call_logs"."created_by" = "users"."id" and "branch_id" = 2 and "users"."branch_id" = 2 and "users"."deleted_at" is null)) and "call_logs"."deleted_at" is null)  
[2026-10-07 10:58:45] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/lead-sources-statistics","user_id":113,"user_reg_no":"STF001009","permissions":["crm.lead_sources.statistics"],"permission_ids":[273]} 
[2026-10-07 10:59:23] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/crm/pipelines","user_id":113,"user_reg_no":"STF001009","permissions":["crm.pipelines.view"],"permission_ids":[168]} 
[2026-10-07 10:59:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:59:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:59:28] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/crm/pipelines","user_id":113,"user_reg_no":"STF001009","permissions":["crm.pipelines.view"],"permission_ids":[168]} 
[2026-10-07 10:59:29] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/branches","user_id":113,"user_reg_no":"STF001009","permissions":["academic.branches.view"],"permission_ids":[294]} 
[2026-10-07 10:59:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 10:59:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:00:28] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 10:45:25","page":1} 
[2026-10-07 11:00:28] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 10:00:27","window_to":"2026-10-07 11:00:28"} 
[2026-10-07 11:00:30] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 11:00:31] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 11:00:47] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:00:53] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-07 10:00:52","window_to":"2026-10-07 11:00:53"} 
[2026-10-07 11:01:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:01:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:01:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:01:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:01:21] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/branches","user_id":113,"user_reg_no":"STF001009","permissions":["academic.branches.view"],"permission_ids":[294]} 
[2026-10-07 11:01:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:01:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:02:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:02:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:02:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:02:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:03:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:03:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:03:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:03:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:03:41] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1"}  
[2026-10-07 11:03:41] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null,"branch_id":"2"}  
[2026-10-07 11:03:41] local.INFO: applyStudentFilters branch_id: 2  
[2026-10-07 11:04:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:04:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:04:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:04:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:04:41] local.WARNING: Permission route not configured; blocking request {"route":"GET /api/v1/admin/tiktok-leads","user_id":113,"user_reg_no":"STF001009","method":"GET","path":"/api/v1/admin/tiktok-leads"} 
[2026-10-07 11:05:15] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/crm/pipelines","user_id":113,"user_reg_no":"STF001009","permissions":["crm.pipelines.view"],"permission_ids":[168]} 
[2026-10-07 11:05:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:05:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:05:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:06:20] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/crm/pipelines","user_id":113,"user_reg_no":"STF001009","permissions":["crm.pipelines.view"],"permission_ids":[168]} 
[2026-10-07 11:06:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:06:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:06:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:06:29] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/branches","user_id":113,"user_reg_no":"STF001009","permissions":["academic.branches.view"],"permission_ids":[294]} 
[2026-10-07 11:06:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:07:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:07:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:07:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:07:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:07:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:07:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:07:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:07:47] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:07:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:07:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:07:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:08:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:08:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:08:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:08:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:08:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:08:22] local.INFO: No FCM tokens found for user {"notification_id":109,"user_id":113} 
[2026-10-07 11:08:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:08:22] local.INFO: No FCM tokens found for user {"notification_id":110,"user_id":112} 
[2026-10-07 11:08:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:08:22] local.INFO: No FCM tokens found for user {"notification_id":111,"user_id":1} 
[2026-10-07 11:08:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:08:22] local.INFO: No FCM tokens found for user {"notification_id":112,"user_id":2} 
[2026-10-07 11:08:24] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/crm/pipelines","user_id":113,"user_reg_no":"STF001009","permissions":["crm.pipelines.view"],"permission_ids":[168]} 
[2026-10-07 11:08:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:08:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:08:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:08:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:08:47] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/branches","user_id":113,"user_reg_no":"STF001009","permissions":["academic.branches.view"],"permission_ids":[294]} 
[2026-10-07 11:09:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:09:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:09:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:09:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:09:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:09:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:09:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:09:30] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/crm/pipelines","user_id":113,"user_reg_no":"STF001009","permissions":["crm.pipelines.view"],"permission_ids":[168]} 
[2026-10-07 11:09:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:09:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:09:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:10:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:10:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:10:32] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/document-type-configs","user_id":113,"user_reg_no":"STF001009","permissions":["documents.type_config.view"],"permission_ids":[954]} 
[2026-10-07 11:10:43] local.INFO: Registration Number Generation {"useBatchCode":false,"batchId":10,"env_value":null} 
[2026-10-07 11:10:44] local.ERROR: No fee plan found for batch ID: 10. Fee plan assignment is required for student enrollment. {"batch_id":10,"enrollments_id":116,"student_id":84} 
[2026-10-07 11:10:44] local.ERROR: Fee plan assignment failed {"enrollments_id":116,"batch_id":10,"error_message":"No fee plan found for batch ID: 10. Fee plan assignment is required for student enrollment.","error_trace":"#0 /var/www/html/api_loyala_backend/app/Http/Controllers/Api/V1/Admin/UserController.php(1278): App\\Http\\Controllers\\Api\\V1\\Admin\\UserController->assignStudentFeePlan()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): App\\Http\\Controllers\\Api\\V1\\Admin\\UserController->registerOffline()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\\Routing\\Route->runController()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\\Routing\\Route->run()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Router->{closure:Illuminate\\Routing\\Router::runRouteWithinStack():821}()
#6 /var/www/html/api_loyala_backend/app/Http/Middleware/CacheApiResponses.php(49): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CacheApiResponses->handle()
#8 /var/www/html/api_loyala_backend/app/Http/Middleware/InvalidateApiCache.php(20): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\InvalidateApiCache->handle()
#10 /var/www/html/api_loyala_backend/app/Http/Middleware/RoutePermissionMiddleware.php(112): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\RoutePermissionMiddleware->handle()
#12 /var/www/html/api_loyala_backend/vendor/tymon/jwt-auth/src/Http/Middleware/Authenticate.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Tymon\\JWTAuth\\Http\\Middleware\\Authenticate->handle()
#14 /var/www/html/api_loyala_backend/app/Http/Middleware/GzipMiddleware.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\GzipMiddleware->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#18 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#20 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#29 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#52 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#53 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#54 {main}"} 
[2026-10-07 11:10:44] local.INFO: Transaction rolled back successfully  
[2026-10-07 11:10:44] local.ERROR: Student registration failed {"error":"Fee plan assignment failed: No fee plan found for batch ID: 10. Fee plan assignment is required for student enrollment.","trace":"#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): App\\Http\\Controllers\\Api\\V1\\Admin\\UserController->registerOffline()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\\Routing\\Route->runController()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\\Routing\\Route->run()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Router->{closure:Illuminate\\Routing\\Router::runRouteWithinStack():821}()
#5 /var/www/html/api_loyala_backend/app/Http/Middleware/CacheApiResponses.php(49): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CacheApiResponses->handle()
#7 /var/www/html/api_loyala_backend/app/Http/Middleware/InvalidateApiCache.php(20): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\InvalidateApiCache->handle()
#9 /var/www/html/api_loyala_backend/app/Http/Middleware/RoutePermissionMiddleware.php(112): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\RoutePermissionMiddleware->handle()
#11 /var/www/html/api_loyala_backend/vendor/tymon/jwt-auth/src/Http/Middleware/Authenticate.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Tymon\\JWTAuth\\Http\\Middleware\\Authenticate->handle()
#13 /var/www/html/api_loyala_backend/app/Http/Middleware/GzipMiddleware.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\GzipMiddleware->handle()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#17 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#19 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#28 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#52 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#53 {main}","request_data":{"full_name":"Petter","email":"petter@gmail.com","phone":"0773079159","whtsapp_num":null,"emergency_phone":null,"nic_passport":"956221458V","dob":"1999-10-07","gender":"male","address":null,"marital_status":null,"admission_date":"2026-10-07","country":null,"district":null,"family_members":[],"vulnerabilities":[],"requested_branch":2,"branch":2,"program_category":1,"program_id":5,"batch_id":10,"o_level_school":null,"o_level_exam_id":null,"o_level_graduation_year":null,"o_level_graduation_point":null,"a_level_school":null,"a_level_exam_id":null,"a_level_graduation_year":null,"a_level_graduation_point":null,"education_level":"higher_diploma","occupation":"student","occupation_place_name":null,"know_from":"social_media","note":null,"status":"active","reg_type":"offline","isConvert":true,"lead_id":156}} 
[2026-10-07 11:10:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:10:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:10:59] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/document-type-configs","user_id":113,"user_reg_no":"STF001009","permissions":["documents.type_config.view"],"permission_ids":[954]} 
[2026-10-07 11:11:00] local.INFO: Registration Number Generation {"useBatchCode":false,"batchId":8,"env_value":null} 
[2026-10-07 11:11:01] local.ERROR: No fee plan found for batch ID: 8. Fee plan assignment is required for student enrollment. {"batch_id":8,"enrollments_id":117,"student_id":85} 
[2026-10-07 11:11:01] local.ERROR: Fee plan assignment failed {"enrollments_id":117,"batch_id":8,"error_message":"No fee plan found for batch ID: 8. Fee plan assignment is required for student enrollment.","error_trace":"#0 /var/www/html/api_loyala_backend/app/Http/Controllers/Api/V1/Admin/UserController.php(1278): App\\Http\\Controllers\\Api\\V1\\Admin\\UserController->assignStudentFeePlan()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): App\\Http\\Controllers\\Api\\V1\\Admin\\UserController->registerOffline()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\\Routing\\Route->runController()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\\Routing\\Route->run()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Router->{closure:Illuminate\\Routing\\Router::runRouteWithinStack():821}()
#6 /var/www/html/api_loyala_backend/app/Http/Middleware/CacheApiResponses.php(49): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CacheApiResponses->handle()
#8 /var/www/html/api_loyala_backend/app/Http/Middleware/InvalidateApiCache.php(20): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\InvalidateApiCache->handle()
#10 /var/www/html/api_loyala_backend/app/Http/Middleware/RoutePermissionMiddleware.php(112): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\RoutePermissionMiddleware->handle()
#12 /var/www/html/api_loyala_backend/vendor/tymon/jwt-auth/src/Http/Middleware/Authenticate.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Tymon\\JWTAuth\\Http\\Middleware\\Authenticate->handle()
#14 /var/www/html/api_loyala_backend/app/Http/Middleware/GzipMiddleware.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\GzipMiddleware->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#18 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#20 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#29 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#52 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#53 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#54 {main}"} 
[2026-10-07 11:11:01] local.INFO: Transaction rolled back successfully  
[2026-10-07 11:11:01] local.ERROR: Student registration failed {"error":"Fee plan assignment failed: No fee plan found for batch ID: 8. Fee plan assignment is required for student enrollment.","trace":"#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): App\\Http\\Controllers\\Api\\V1\\Admin\\UserController->registerOffline()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\\Routing\\Route->runController()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\\Routing\\Route->run()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Router->{closure:Illuminate\\Routing\\Router::runRouteWithinStack():821}()
#5 /var/www/html/api_loyala_backend/app/Http/Middleware/CacheApiResponses.php(49): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CacheApiResponses->handle()
#7 /var/www/html/api_loyala_backend/app/Http/Middleware/InvalidateApiCache.php(20): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\InvalidateApiCache->handle()
#9 /var/www/html/api_loyala_backend/app/Http/Middleware/RoutePermissionMiddleware.php(112): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\RoutePermissionMiddleware->handle()
#11 /var/www/html/api_loyala_backend/vendor/tymon/jwt-auth/src/Http/Middleware/Authenticate.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Tymon\\JWTAuth\\Http\\Middleware\\Authenticate->handle()
#13 /var/www/html/api_loyala_backend/app/Http/Middleware/GzipMiddleware.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\GzipMiddleware->handle()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#17 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#19 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#28 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#52 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#53 {main}","request_data":{"full_name":"Petter","email":"petter@gmail.com","phone":"0773079159","whtsapp_num":null,"emergency_phone":null,"nic_passport":"956221458V","dob":"1999-10-07","gender":"male","address":null,"marital_status":null,"admission_date":"2026-10-07","country":null,"district":null,"family_members":[],"vulnerabilities":[],"requested_branch":2,"branch":2,"program_category":1,"program_id":3,"batch_id":8,"o_level_school":null,"o_level_exam_id":null,"o_level_graduation_year":null,"o_level_graduation_point":null,"a_level_school":null,"a_level_exam_id":null,"a_level_graduation_year":null,"a_level_graduation_point":null,"education_level":"higher_diploma","occupation":"student","occupation_place_name":null,"know_from":"social_media","note":null,"status":"active","reg_type":"offline","isConvert":true,"lead_id":156}} 
[2026-10-07 11:11:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:11:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:11:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:11:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:11:42] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/document-type-configs","user_id":113,"user_reg_no":"STF001009","permissions":["documents.type_config.view"],"permission_ids":[954]} 
[2026-10-07 11:11:46] local.INFO: Registration Number Generation {"useBatchCode":false,"batchId":10,"env_value":null} 
[2026-10-07 11:11:46] local.ERROR: No fee plan found for batch ID: 10. Fee plan assignment is required for student enrollment. {"batch_id":10,"enrollments_id":118,"student_id":86} 
[2026-10-07 11:11:46] local.ERROR: Fee plan assignment failed {"enrollments_id":118,"batch_id":10,"error_message":"No fee plan found for batch ID: 10. Fee plan assignment is required for student enrollment.","error_trace":"#0 /var/www/html/api_loyala_backend/app/Http/Controllers/Api/V1/Admin/UserController.php(1278): App\\Http\\Controllers\\Api\\V1\\Admin\\UserController->assignStudentFeePlan()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): App\\Http\\Controllers\\Api\\V1\\Admin\\UserController->registerOffline()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\\Routing\\Route->runController()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\\Routing\\Route->run()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Router->{closure:Illuminate\\Routing\\Router::runRouteWithinStack():821}()
#6 /var/www/html/api_loyala_backend/app/Http/Middleware/CacheApiResponses.php(49): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CacheApiResponses->handle()
#8 /var/www/html/api_loyala_backend/app/Http/Middleware/InvalidateApiCache.php(20): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\InvalidateApiCache->handle()
#10 /var/www/html/api_loyala_backend/app/Http/Middleware/RoutePermissionMiddleware.php(112): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\RoutePermissionMiddleware->handle()
#12 /var/www/html/api_loyala_backend/vendor/tymon/jwt-auth/src/Http/Middleware/Authenticate.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Tymon\\JWTAuth\\Http\\Middleware\\Authenticate->handle()
#14 /var/www/html/api_loyala_backend/app/Http/Middleware/GzipMiddleware.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\GzipMiddleware->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#18 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#20 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#29 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#52 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#53 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#54 {main}"} 
[2026-10-07 11:11:46] local.INFO: Transaction rolled back successfully  
[2026-10-07 11:11:46] local.ERROR: Student registration failed {"error":"Fee plan assignment failed: No fee plan found for batch ID: 10. Fee plan assignment is required for student enrollment.","trace":"#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): App\\Http\\Controllers\\Api\\V1\\Admin\\UserController->registerOffline()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\\Routing\\Route->runController()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\\Routing\\Route->run()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Router->{closure:Illuminate\\Routing\\Router::runRouteWithinStack():821}()
#5 /var/www/html/api_loyala_backend/app/Http/Middleware/CacheApiResponses.php(49): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CacheApiResponses->handle()
#7 /var/www/html/api_loyala_backend/app/Http/Middleware/InvalidateApiCache.php(20): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\InvalidateApiCache->handle()
#9 /var/www/html/api_loyala_backend/app/Http/Middleware/RoutePermissionMiddleware.php(112): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\RoutePermissionMiddleware->handle()
#11 /var/www/html/api_loyala_backend/vendor/tymon/jwt-auth/src/Http/Middleware/Authenticate.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Tymon\\JWTAuth\\Http\\Middleware\\Authenticate->handle()
#13 /var/www/html/api_loyala_backend/app/Http/Middleware/GzipMiddleware.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\GzipMiddleware->handle()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#17 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#19 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#28 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#52 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#53 {main}","request_data":{"full_name":"Petter","email":"petter@gmail.com","phone":"0773079159","whtsapp_num":null,"emergency_phone":null,"nic_passport":"956221458V","dob":"1999-10-07","gender":"male","address":null,"marital_status":null,"admission_date":"2026-10-07","country":null,"district":null,"family_members":[],"vulnerabilities":[],"requested_branch":2,"branch":2,"program_category":1,"program_id":5,"batch_id":10,"o_level_school":null,"o_level_exam_id":null,"o_level_graduation_year":null,"o_level_graduation_point":null,"a_level_school":null,"a_level_exam_id":null,"a_level_graduation_year":null,"a_level_graduation_point":null,"education_level":"higher_diploma","occupation":"student","occupation_place_name":null,"know_from":"social_media","note":null,"status":"active","reg_type":"offline","isConvert":true,"lead_id":156}} 
[2026-10-07 11:12:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:12:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:12:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:12:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:12:42] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/document-type-configs","user_id":113,"user_reg_no":"STF001009","permissions":["documents.type_config.view"],"permission_ids":[954]} 
[2026-10-07 11:12:54] local.INFO: Registration Number Generation {"useBatchCode":false,"batchId":12,"env_value":null} 
[2026-10-07 11:12:55] local.ERROR: No fee plan found for batch ID: 12. Fee plan assignment is required for student enrollment. {"batch_id":12,"enrollments_id":119,"student_id":87} 
[2026-10-07 11:12:55] local.ERROR: Fee plan assignment failed {"enrollments_id":119,"batch_id":12,"error_message":"No fee plan found for batch ID: 12. Fee plan assignment is required for student enrollment.","error_trace":"#0 /var/www/html/api_loyala_backend/app/Http/Controllers/Api/V1/Admin/UserController.php(1278): App\\Http\\Controllers\\Api\\V1\\Admin\\UserController->assignStudentFeePlan()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): App\\Http\\Controllers\\Api\\V1\\Admin\\UserController->registerOffline()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\\Routing\\Route->runController()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\\Routing\\Route->run()
#5 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Router->{closure:Illuminate\\Routing\\Router::runRouteWithinStack():821}()
#6 /var/www/html/api_loyala_backend/app/Http/Middleware/CacheApiResponses.php(49): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#7 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CacheApiResponses->handle()
#8 /var/www/html/api_loyala_backend/app/Http/Middleware/InvalidateApiCache.php(20): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#9 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\InvalidateApiCache->handle()
#10 /var/www/html/api_loyala_backend/app/Http/Middleware/RoutePermissionMiddleware.php(112): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#11 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\RoutePermissionMiddleware->handle()
#12 /var/www/html/api_loyala_backend/vendor/tymon/jwt-auth/src/Http/Middleware/Authenticate.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#13 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Tymon\\JWTAuth\\Http\\Middleware\\Authenticate->handle()
#14 /var/www/html/api_loyala_backend/app/Http/Middleware/GzipMiddleware.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\GzipMiddleware->handle()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#17 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#18 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#19 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#20 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#28 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#29 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#52 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#53 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#54 {main}"} 
[2026-10-07 11:12:55] local.INFO: Transaction rolled back successfully  
[2026-10-07 11:12:55] local.ERROR: Student registration failed {"error":"Fee plan assignment failed: No fee plan found for batch ID: 12. Fee plan assignment is required for student enrollment.","trace":"#0 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): App\\Http\\Controllers\\Api\\V1\\Admin\\UserController->registerOffline()
#1 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#2 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\\Routing\\Route->runController()
#3 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\\Routing\\Route->run()
#4 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Router->{closure:Illuminate\\Routing\\Router::runRouteWithinStack():821}()
#5 /var/www/html/api_loyala_backend/app/Http/Middleware/CacheApiResponses.php(49): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#6 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CacheApiResponses->handle()
#7 /var/www/html/api_loyala_backend/app/Http/Middleware/InvalidateApiCache.php(20): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#8 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\InvalidateApiCache->handle()
#9 /var/www/html/api_loyala_backend/app/Http/Middleware/RoutePermissionMiddleware.php(112): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#10 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\RoutePermissionMiddleware->handle()
#11 /var/www/html/api_loyala_backend/vendor/tymon/jwt-auth/src/Http/Middleware/Authenticate.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#12 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Tymon\\JWTAuth\\Http\\Middleware\\Authenticate->handle()
#13 /var/www/html/api_loyala_backend/app/Http/Middleware/GzipMiddleware.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#14 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\GzipMiddleware->handle()
#15 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#16 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#17 /var/www/html/api_loyala_backend/app/Http/Middleware/CorsMiddleware.php(32): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#18 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CorsMiddleware->handle()
#19 /var/www/html/api_loyala_backend/app/Http/Middleware/CheckTokenRevocation.php(43): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#20 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\CheckTokenRevocation->handle()
#21 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#22 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then()
#23 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack()
#24 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute()
#25 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute()
#26 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#27 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#28 /var/www/html/api_loyala_backend/app/Http/Middleware/SecurityHeaders.php(20): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}()
#29 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\\Http\\Middleware\\SecurityHeaders->handle()
#30 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#31 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#32 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#33 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#34 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#35 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#36 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#37 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#38 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#39 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#40 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#41 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle()
#42 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#43 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#44 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#45 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#46 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#47 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#48 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}()
#49 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#50 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#51 /var/www/html/api_loyala_backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle()
#52 /var/www/html/api_loyala_backend/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#53 {main}","request_data":{"full_name":"Suluxion Kenady","email":null,"phone":"760285817","whtsapp_num":"760285817","emergency_phone":null,"nic_passport":"200114003765","dob":"2001-05-18","gender":"male","address":null,"marital_status":null,"admission_date":"2026-10-07","country":null,"district":null,"family_members":[],"vulnerabilities":[],"requested_branch":2,"branch":2,"program_category":6,"program_id":12,"batch_id":12,"o_level_school":null,"o_level_exam_id":null,"o_level_graduation_year":null,"o_level_graduation_point":null,"a_level_school":null,"a_level_exam_id":null,"a_level_graduation_year":null,"a_level_graduation_point":null,"education_level":null,"know_from":"other","note":null,"status":"active","reg_type":"offline","isConvert":true,"lead_id":78}} 
[2026-10-07 11:13:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:13:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:13:59] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:14:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:14:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:14:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:14:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:14:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:15:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 11:00:27","page":1} 
[2026-10-07 11:15:26] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 10:15:25","window_to":"2026-10-07 11:15:25"} 
[2026-10-07 11:15:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 11:15:27] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 11:15:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:15:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:15:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:15:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:16:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:16:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:17:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:17:01] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:17:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:17:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:17:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:17:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:18:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:18:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:18:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:18:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:18:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:18:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:18:36] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:18:37] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/crm/pipelines","user_id":113,"user_reg_no":"STF001009","permissions":["crm.pipelines.view"],"permission_ids":[168]} 
[2026-10-07 11:18:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:18:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:18:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:19:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:19:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:19:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:19:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:19:36] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:19:36] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:19:42] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/document-type-configs","user_id":113,"user_reg_no":"STF001009","permissions":["documents.type_config.view"],"permission_ids":[954]} 
[2026-10-07 11:19:48] local.INFO: Registration Number Generation {"useBatchCode":false,"batchId":10,"env_value":null} 
[2026-10-07 11:19:51] local.INFO: Using backend-style offer letter template  
[2026-10-07 11:19:51] local.INFO: OfferLetterService: generateFinePolicySection invoked  
[2026-10-07 11:19:51] local.INFO: OfferLetterService: fine policy not found, returning empty section  
[2026-10-07 11:19:51] local.INFO: OfferLetterService: fine policy section generated {"included":false,"length":0} 
[2026-10-07 11:20:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:20:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:20:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:20:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:20:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:20:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:20:36] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:20:36] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:20:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:20:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:20:55] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/document-type-configs","user_id":113,"user_reg_no":"STF001009","permissions":["documents.type_config.view"],"permission_ids":[954]} 
[2026-10-07 11:21:05] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:21:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:21:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:21:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:21:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:21:54] local.INFO: Student activated by payment status update {"student_id":88,"previous_status":"active","new_status":"active","outstanding_amount":12000.0,"due_amount":0.0,"due_percentage":0.0,"max_due_percentage":100.0,"has_grace_period":false} 
[2026-10-07 11:21:54] local.INFO: array (
  'success' => true,
  'message' => 'Student status updated to active',
  'student_id' => 88,
  'previous_status' => 'active',
  'current_status' => 'active',
  'payment_info' => 
  array (
    'outstanding_amount' => 12000.0,
    'due_amount' => 0.0,
    'due_items_count' => 0,
    'due_percentage' => 0.0,
    'max_due_percentage' => 100.0,
    'has_grace_period' => false,
  ),
)  
[2026-10-07 11:21:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:21:54] local.INFO: No FCM tokens found for user {"notification_id":113,"user_id":118} 
[2026-10-07 11:21:54] local.INFO: Creating email communication history {"message_id":"msg_2I2yzZsYfZ","is_scheduled":false,"initial_status":"pending","recipients_count":1,"scheduled_at":null,"has_attachments":false,"per_recipient_records":true} 
[2026-10-07 11:21:54] local.INFO: Starting immediate email send {"message_id":"msg_2I2yzZsYfZ","recipients_count":1,"history_ids":[11]} 
[2026-10-07 11:21:54] local.ERROR: Email sending failed {"communication_id":11,"recipient":"petter@gmail.com","provider":"smtp","error":"No provider configured"} 
[2026-10-07 11:21:54] local.INFO: Immediate email send completed {"message_id":"msg_2I2yzZsYfZ","total_recipients":1,"history_ids":[11]} 
[2026-10-07 11:21:54] local.ERROR: SMS settings not configured. Please configure the following fields: API Key, API Secret, Sender ID  
[2026-10-07 11:21:54] local.WARNING: Payment SMS failed via job {"phone":"773079159","error":"Error: SMS settings not configured. Please configure the following fields: API Key, API Secret, Sender ID"} 
[2026-10-07 11:21:55] local.INFO: Using backend-style offer letter template  
[2026-10-07 11:21:55] local.INFO: OfferLetterService: generateFinePolicySection invoked  
[2026-10-07 11:21:55] local.INFO: OfferLetterService: fine policy not found, returning empty section  
[2026-10-07 11:21:55] local.INFO: OfferLetterService: fine policy section generated {"included":false,"length":0} 
[2026-10-07 11:21:56] local.INFO: Offer letter already sent for student, skipping {"student_id":88} 
[2026-10-07 11:21:56] local.INFO: Login credentials already sent for student, skipping {"student_id":88} 
[2026-10-07 11:21:56] local.INFO: Offer letter generated and sent successfully {"student_id":88,"program_id":5,"payment_id":4,"student_name":"Petter","student_email":"petter@gmail.com"} 
[2026-10-07 11:21:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:22:00] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:22:01] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:22:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:22:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:22:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:22:23] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null,"branch_id":"2"}  
[2026-10-07 11:22:23] local.INFO: applyStudentFilters branch_id: 2  
[2026-10-07 11:22:23] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1"}  
[2026-10-07 11:22:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:23:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:23:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:23:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:23:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:23:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:23:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:24:01] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:24:01] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:24:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:24:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:24:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:24:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:25:05] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:25:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:25:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:25:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:25:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:25:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:25:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:25:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:25:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:25:53] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/scholarships/students/88","user_id":113,"user_reg_no":"STF001009","permissions":["fee.discounts.student_scholarships"],"permission_ids":[1072]} 
[2026-10-07 11:26:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:26:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:26:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:26:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:26:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:27:01] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:27:10] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:27:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:27:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:27:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:27:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:27:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:27:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:28:01] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:28:08] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/scholarships/students/88","user_id":113,"user_reg_no":"STF001009","permissions":["fee.discounts.student_scholarships"],"permission_ids":[1072]} 
[2026-10-07 11:28:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:28:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:28:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:28:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:28:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:28:30] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/payment-collections/reversals","user_id":113,"user_reg_no":"STF001009","permissions":["fee.payment_reversals.view"],"permission_ids":[616]} 
[2026-10-07 11:28:30] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/payment-collections/reversals/statistics","user_id":113,"user_reg_no":"STF001009","permissions":["fee.payment_reversals.statistics"],"permission_ids":[617]} 
[2026-10-07 11:28:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:28:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:29:08] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:29:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:29:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:29:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:29:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:29:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:30:00] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/inventory/stock-transfers","user_id":113,"user_reg_no":"STF001009","permissions":["inventory.transfers.view"],"permission_ids":[3]} 
[2026-10-07 11:30:01] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/inventory/stock-transfers/location-summaries","user_id":113,"user_reg_no":"STF001009","permissions":["inventory.transfers.view"],"permission_ids":[3]} 
[2026-10-07 11:30:28] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 11:15:25","page":1} 
[2026-10-07 11:30:28] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 10:30:27","window_to":"2026-10-07 11:30:28"} 
[2026-10-07 11:30:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:30:30] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 11:30:30] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 11:30:31] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/inventory/stock-transfers/stock-by-location","user_id":113,"user_reg_no":"STF001009","permissions":["inventory.transfers.view"],"permission_ids":[3]} 
[2026-10-07 11:30:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:30:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:30:42] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/inventory/stock-transfers/stock-by-location","user_id":113,"user_reg_no":"STF001009","permissions":["inventory.transfers.view"],"permission_ids":[3]} 
[2026-10-07 11:30:50] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:30:50] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:30:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:30:51] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/inventory/scan-history","user_id":113,"user_reg_no":"STF001009","permissions":["inventory.scan_history.view"],"permission_ids":[9]} 
[2026-10-07 11:31:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:31:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:31:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:31:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:31:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:32:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:32:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:32:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:32:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:32:56] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/inventory/scan-history","user_id":113,"user_reg_no":"STF001009","permissions":["inventory.scan_history.view"],"permission_ids":[9]} 
[2026-10-07 11:33:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:33:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:33:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:33:22] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/inventory/standalone-assets","user_id":113,"user_reg_no":"STF001009","permissions":["inventory.standalone_assets.view"],"permission_ids":[14]} 
[2026-10-07 11:33:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:33:24] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/inventory/standalone-assets","user_id":113,"user_reg_no":"STF001009","permissions":["inventory.standalone_assets.view"],"permission_ids":[14]} 
[2026-10-07 11:33:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:33:47] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/inventory/standalone-assets","user_id":113,"user_reg_no":"STF001009","permissions":["inventory.standalone_assets.view"],"permission_ids":[14]} 
[2026-10-07 11:34:19] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/inventory/standalone-assets","user_id":113,"user_reg_no":"STF001009","permissions":["inventory.standalone_assets.view"],"permission_ids":[14]} 
[2026-10-07 11:34:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:34:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:34:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:34:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:34:38] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:34:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:34:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:35:07] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:35:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:35:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:35:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:35:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:35:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:35:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:35:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:35:47] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:36:20] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/inventory/standalone-assets","user_id":113,"user_reg_no":"STF001009","permissions":["inventory.standalone_assets.view"],"permission_ids":[14]} 
[2026-10-07 11:36:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:36:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:36:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:36:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:36:24] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/inventory/standalone-assets","user_id":113,"user_reg_no":"STF001009","permissions":["inventory.standalone_assets.view"],"permission_ids":[14]} 
[2026-10-07 11:36:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:36:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:36:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:37:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:37:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:37:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:37:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:37:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:37:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:37:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:37:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:37:54] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/inventory/standalone-assets","user_id":113,"user_reg_no":"STF001009","permissions":["inventory.standalone_assets.view"],"permission_ids":[14]} 
[2026-10-07 11:38:07] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:38:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:38:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:38:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:38:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:38:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:38:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:38:49] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/inventory/standalone-assets","user_id":113,"user_reg_no":"STF001009","permissions":["inventory.standalone_assets.view"],"permission_ids":[14]} 
[2026-10-07 11:39:19] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/inventory/standalone-assets","user_id":113,"user_reg_no":"STF001009","permissions":["inventory.standalone_assets.view"],"permission_ids":[14]} 
[2026-10-07 11:39:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:39:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:39:25] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:39:28] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/inventory/stocks","user_id":113,"user_reg_no":"STF001009","permissions":["inventory.stock.view"],"permission_ids":[646]} 
[2026-10-07 11:39:29] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/inventory/reports/suppliers","user_id":113,"user_reg_no":"STF001009","permissions":["inventory.reports.suppliers"],"permission_ids":[674]} 
[2026-10-07 11:39:29] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/inventory/reports/purchases","user_id":113,"user_reg_no":"STF001009","permissions":["inventory.reports.purchases"],"permission_ids":[672]} 
[2026-10-07 11:39:30] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/inventory/stock-transfers/location-summaries","user_id":113,"user_reg_no":"STF001009","permissions":["inventory.transfers.view"],"permission_ids":[3]} 
[2026-10-07 11:39:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:39:45] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/inventory/stocks","user_id":113,"user_reg_no":"STF001009","permissions":["inventory.stock.view"],"permission_ids":[646]} 
[2026-10-07 11:40:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:40:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:40:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:40:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:41:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:41:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:41:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:41:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:42:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:42:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:42:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:42:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:42:39] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/crm/pipelines","user_id":113,"user_reg_no":"STF001009","permissions":["crm.pipelines.view"],"permission_ids":[168]} 
[2026-10-07 11:43:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:43:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:43:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:43:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:44:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:44:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:44:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:44:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:44:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:45:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 11:30:28","page":1} 
[2026-10-07 11:45:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 10:45:23","window_to":"2026-10-07 11:45:24"} 
[2026-10-07 11:45:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 11:45:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 11:45:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:45:36] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:45:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:45:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:46:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:46:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:46:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:46:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:46:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:46:43] local.ERROR: Gmail API error: Gmail API settings not configured  
[2026-10-07 11:46:43] local.WARNING: Gmail failed for staff credentials email, trying Zepto Mail {"gmail_error":"Gmail API settings not configured"} 
[2026-10-07 11:46:43] local.ERROR: ZeptoMailer error: Zepto Mail API key or admin email not configured  
[2026-10-07 11:46:43] local.WARNING: Failed to send staff credentials email {"staff_id":31,"error":"Zepto Mail API key or admin email not configured"} 
[2026-10-07 11:46:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:46:44] local.INFO: No FCM tokens found for user {"notification_id":114,"user_id":112} 
[2026-10-07 11:46:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:46:44] local.INFO: No FCM tokens found for user {"notification_id":115,"user_id":1} 
[2026-10-07 11:46:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:46:44] local.INFO: No FCM tokens found for user {"notification_id":116,"user_id":2} 
[2026-10-07 11:46:53] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:46:56] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:46:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:46:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:47:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:47:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:47:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:47:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:48:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:48:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:48:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:48:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:48:47] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:48:48] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:49:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:49:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:49:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:49:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:50:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:50:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:50:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:50:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:50:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:50:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:51:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:51:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:51:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:51:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:52:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:52:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:52:43] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:52:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:52:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:52:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:53:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:53:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:53:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:53:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:53:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:54:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:54:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:54:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:54:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:54:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:55:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:55:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:55:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:55:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:55:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:55:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:55:38] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:55:43] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:55:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:55:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:56:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:56:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:56:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:56:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:56:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:56:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:56:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:56:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:57:15] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:57:17] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:57:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:57:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:57:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:57:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:57:47] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/crm/pipelines","user_id":119,"user_reg_no":"STF001010","permissions":["crm.pipelines.view"],"permission_ids":[168]} 
[2026-10-07 11:58:02] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/crm/pipelines","user_id":119,"user_reg_no":"STF001010","permissions":["crm.pipelines.view"],"permission_ids":[168]} 
[2026-10-07 11:58:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:58:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:58:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:58:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:58:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:58:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:59:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:59:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:59:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 11:59:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:00:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:00:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:00:30] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 11:00:29","window_to":"2026-10-07 12:00:29"} 
[2026-10-07 12:00:30] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 11:45:24","page":1} 
[2026-10-07 12:00:33] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 12:00:33] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 12:00:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:00:42] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:00:50] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:00:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:01:01] local.ERROR: Automated database backup failed: The command "'C:\Program Files\PostgreSQL\18\bin\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_10_07_12_01_01.sql'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\Program Files\PostgreSQL\18\bin\pg_dump.exe: not found
  
[2026-10-07 12:01:05] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-07 11:01:03","window_to":"2026-10-07 12:01:03"} 
[2026-10-07 12:01:23] local.ERROR: Scheduled command failed: backup:database-auto {"output":"Starting automated database backup...
Database backup failed: The command \"'C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe' '-U' 'loyola_user' '-h' '127.0.0.1' '-p' '5432' 'loyola_db' '-f' '/var/www/html/api_loyala_backend/storage/app/temp_backups/backup_2026_10_07_12_01_01.sql'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/html/api_loyala_backend

Output:
================


Error Output:
================
sh: 1: exec: C:\\Program Files\\PostgreSQL\\18\\bin\\pg_dump.exe: not found

"} 
[2026-10-07 12:01:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:01:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:01:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:01:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:01:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:01:36] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:01:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:01:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:02:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:02:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:02:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:02:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:02:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:03:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:03:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:03:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:03:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:04:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:04:16] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:04:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:04:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:04:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:04:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:04:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:05:36] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:05:37] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:05:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:05:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:05:49] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:06:12] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:06:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:06:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:06:20] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:06:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:06:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:06:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:06:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:06:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:07:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:07:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:07:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:07:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:08:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:08:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:08:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:08:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:08:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:08:57] local.INFO: No FCM tokens found for user {"notification_id":117,"user_id":119} 
[2026-10-07 12:08:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:09:11] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:09:13] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:09:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:09:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:09:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:09:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:10:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:10:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:10:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:10:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:11:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:11:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:11:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:11:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:12:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:12:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:12:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:12:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:13:03] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/document-type-configs","user_id":119,"user_reg_no":"STF001010","permissions":["documents.type_config.view"],"permission_ids":[954]} 
[2026-10-07 12:13:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:13:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:13:33] local.INFO: Registration Number Generation {"useBatchCode":false,"batchId":22,"env_value":null} 
[2026-10-07 12:13:35] local.INFO: Using backend-style offer letter template  
[2026-10-07 12:13:35] local.INFO: OfferLetterService: generateFinePolicySection invoked  
[2026-10-07 12:13:35] local.INFO: OfferLetterService: fine policy not found, returning empty section  
[2026-10-07 12:13:35] local.INFO: OfferLetterService: fine policy section generated {"included":false,"length":0} 
[2026-10-07 12:13:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:13:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:13:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:14:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:14:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:14:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:14:39] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:14:39] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/document-type-configs","user_id":119,"user_reg_no":"STF001010","permissions":["documents.type_config.view"],"permission_ids":[954]} 
[2026-10-07 12:14:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:14:58] local.INFO: Student activated by payment status update {"student_id":89,"previous_status":"active","new_status":"active","outstanding_amount":12000.0,"due_amount":0.0,"due_percentage":0.0,"max_due_percentage":100.0,"has_grace_period":false} 
[2026-10-07 12:14:58] local.INFO: array (
  'success' => true,
  'message' => 'Student status updated to active',
  'student_id' => 89,
  'previous_status' => 'active',
  'current_status' => 'active',
  'payment_info' => 
  array (
    'outstanding_amount' => 12000.0,
    'due_amount' => 0.0,
    'due_items_count' => 0,
    'due_percentage' => 0.0,
    'max_due_percentage' => 100.0,
    'has_grace_period' => false,
  ),
)  
[2026-10-07 12:14:59] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:14:59] local.INFO: No FCM tokens found for user {"notification_id":118,"user_id":120} 
[2026-10-07 12:14:59] local.INFO: Creating email communication history {"message_id":"msg_p71b3QwhbE","is_scheduled":false,"initial_status":"pending","recipients_count":1,"scheduled_at":null,"has_attachments":false,"per_recipient_records":true} 
[2026-10-07 12:14:59] local.INFO: Starting immediate email send {"message_id":"msg_p71b3QwhbE","recipients_count":1,"history_ids":[15]} 
[2026-10-07 12:14:59] local.ERROR: Email sending failed {"communication_id":15,"recipient":"2007fathimaaneesha@gmail.com","provider":"smtp","error":"No provider configured"} 
[2026-10-07 12:14:59] local.INFO: Immediate email send completed {"message_id":"msg_p71b3QwhbE","total_recipients":1,"history_ids":[15]} 
[2026-10-07 12:14:59] local.ERROR: SMS settings not configured. Please configure the following fields: API Key, API Secret, Sender ID  
[2026-10-07 12:14:59] local.WARNING: Payment SMS failed via job {"phone":"725948669","error":"Error: SMS settings not configured. Please configure the following fields: API Key, API Secret, Sender ID"} 
[2026-10-07 12:14:59] local.INFO: Using backend-style offer letter template  
[2026-10-07 12:14:59] local.INFO: OfferLetterService: generateFinePolicySection invoked  
[2026-10-07 12:14:59] local.INFO: OfferLetterService: fine policy not found, returning empty section  
[2026-10-07 12:14:59] local.INFO: OfferLetterService: fine policy section generated {"included":false,"length":0} 
[2026-10-07 12:15:01] local.INFO: Offer letter already sent for student, skipping {"student_id":89} 
[2026-10-07 12:15:01] local.INFO: Login credentials already sent for student, skipping {"student_id":89} 
[2026-10-07 12:15:01] local.INFO: Offer letter generated and sent successfully {"student_id":89,"program_id":9,"payment_id":5,"student_name":"Fathima Aneesha","student_email":"2007fathimaaneesha@gmail.com"} 
[2026-10-07 12:15:14] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:15:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:15:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:15:27] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 11:15:26","window_to":"2026-10-07 12:15:26"} 
[2026-10-07 12:15:27] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 12:00:30","page":1} 
[2026-10-07 12:15:29] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 12:15:30] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 12:15:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:15:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:15:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:15:45] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:15:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:15:50] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:15:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:15:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:15:54] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:15:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:16:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:16:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:16:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:16:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:16:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:16:30] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:16:42] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1"}  
[2026-10-07 12:16:42] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null,"branch_id":"4"}  
[2026-10-07 12:16:42] local.INFO: applyStudentFilters branch_id: 4  
[2026-10-07 12:17:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:17:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:17:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:17:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:18:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:18:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:18:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:18:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:19:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:19:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:19:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:19:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:20:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:20:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:20:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:20:31] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:21:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:21:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:21:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:21:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:21:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:21:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:21:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:22:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:22:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:22:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:22:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:23:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:23:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:23:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:23:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:23:36] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:23:36] local.INFO: No FCM tokens found for user {"notification_id":119,"user_id":106} 
[2026-10-07 12:23:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:23:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:23:59] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:24:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:24:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:24:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:24:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:25:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:25:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:25:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:25:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:25:44] local.WARNING: User does not have permission for route {"route":"GET /api/v1/admin/document-type-configs","user_id":119,"user_reg_no":"STF001010","permissions":["documents.type_config.view"],"permission_ids":[954]} 
[2026-10-07 12:25:49] local.INFO: Registration Number Generation {"useBatchCode":false,"batchId":18,"env_value":null} 
[2026-10-07 12:25:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:25:51] local.INFO: Using backend-style offer letter template  
[2026-10-07 12:25:51] local.INFO: OfferLetterService: generateFinePolicySection invoked  
[2026-10-07 12:25:51] local.INFO: OfferLetterService: fine policy not found, returning empty section  
[2026-10-07 12:25:51] local.INFO: OfferLetterService: fine policy section generated {"included":false,"length":0} 
[2026-10-07 12:25:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:25:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:25:57] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:26:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:26:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:26:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:26:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:27:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:27:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:27:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:27:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:28:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:28:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:28:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:28:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:29:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:29:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:29:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:29:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:30:30] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 12:15:27","page":1} 
[2026-10-07 12:30:31] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 11:30:30","window_to":"2026-10-07 12:30:30"} 
[2026-10-07 12:30:32] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 12:30:32] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 12:30:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:30:41] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:30:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:30:50] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:30:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:30:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:30:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:31:24] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:31:26] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1"}  
[2026-10-07 12:31:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:31:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:31:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:32:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:32:21] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"10","search":null,"status":null,"program":null,"batch":null,"type":null,"branch_id":"4"}  
[2026-10-07 12:32:21] local.INFO: applyStudentFilters branch_id: 4  
[2026-10-07 12:32:23] local.INFO: Entering getAllStudents route. Params: {"page":"1","limit":"1"}  
[2026-10-07 12:32:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:32:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:32:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:33:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:33:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:33:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:33:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:34:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:34:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:34:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:34:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:34:35] local.INFO: applyStudentFilters branch_id: 4  
[2026-10-07 12:34:35] local.INFO: applyStudentFilters branch_id: 4  
[2026-10-07 12:34:58] local.INFO: applyStudentFilters branch_id: 4  
[2026-10-07 12:34:59] local.INFO: applyStudentFilters branch_id: 4  
[2026-10-07 12:35:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:35:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:35:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:35:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:35:34] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:36:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:36:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:36:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:36:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:37:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:37:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:37:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:37:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:38:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:38:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:38:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:38:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:39:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:39:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:39:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:39:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:40:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:40:29] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:40:46] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:40:47] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:40:51] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:40:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:41:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:41:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:41:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:41:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:42:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:42:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:42:27] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:42:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:43:18] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:43:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:43:19] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:43:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:43:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:43:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:44:21] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:44:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:44:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:44:52] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:45:23] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:45:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 12:30:30","page":1} 
[2026-10-07 12:45:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 11:45:23","window_to":"2026-10-07 12:45:23"} 
[2026-10-07 12:45:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 12:45:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 12:45:26] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:45:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:45:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:45:58] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:46:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:46:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:46:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:46:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:47:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:47:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:47:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:47:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:48:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:48:22] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:48:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:48:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:49:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:49:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:50:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:50:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:51:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:51:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:52:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:52:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:53:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:53:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:54:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:54:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:55:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:55:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:56:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:56:28] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:57:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:57:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:58:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:58:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:59:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 12:59:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:00:27] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 12:45:23","page":1} 
[2026-10-07 13:00:27] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 12:00:26","window_to":"2026-10-07 13:00:26"} 
[2026-10-07 13:00:29] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 13:00:29] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 13:00:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:00:35] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:00:50] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-07 12:00:50","window_to":"2026-10-07 13:00:50"} 
[2026-10-07 13:01:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:01:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:02:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:02:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:03:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:03:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:04:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:04:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:05:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:05:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:06:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:06:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:07:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:07:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:08:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:08:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:09:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:09:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:10:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:10:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:10:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:11:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:11:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:12:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:12:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:13:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:13:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:14:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:14:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:15:26] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 12:15:25","window_to":"2026-10-07 13:15:25"} 
[2026-10-07 13:15:26] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 13:00:26","page":1} 
[2026-10-07 13:15:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 13:15:28] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 13:15:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:15:40] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:16:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:16:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:17:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:17:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:18:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:18:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:19:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:19:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:20:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:20:33] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:21:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:21:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:22:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:22:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:23:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:23:32] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 13:30:28] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 12:30:28","window_to":"2026-10-07 13:30:28"} 
[2026-10-07 13:30:29] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 13:15:26","page":1} 
[2026-10-07 13:30:31] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 13:30:31] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 13:45:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 12:45:25","window_to":"2026-10-07 13:45:25"} 
[2026-10-07 13:45:26] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 13:30:29","page":1} 
[2026-10-07 13:45:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 13:45:28] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 14:00:28] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 13:00:27","window_to":"2026-10-07 14:00:27"} 
[2026-10-07 14:00:30] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 13:45:26","page":1} 
[2026-10-07 14:00:32] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 14:00:32] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 14:00:53] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-07 13:00:53","window_to":"2026-10-07 14:00:53"} 
[2026-10-07 14:15:24] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 14:00:30","page":1} 
[2026-10-07 14:15:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 13:15:24","window_to":"2026-10-07 14:15:24"} 
[2026-10-07 14:15:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 14:15:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 14:28:44] local.WARNING: Firebase credentials file not found {"credentials_path":"/var/www/html/api_loyala_backend/storage/app/firebase/firebase-credentials.json","firestore_enabled":false} 
[2026-10-07 14:30:26] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 13:30:26","window_to":"2026-10-07 14:30:26"} 
[2026-10-07 14:30:27] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 14:15:24","page":1} 
[2026-10-07 14:30:29] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 14:30:29] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 14:45:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 13:45:22","window_to":"2026-10-07 14:45:22"} 
[2026-10-07 14:45:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 14:30:27","page":1} 
[2026-10-07 14:45:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 14:45:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 15:00:28] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 14:45:22","page":1} 
[2026-10-07 15:00:29] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 14:00:28","window_to":"2026-10-07 15:00:29"} 
[2026-10-07 15:00:32] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 15:00:32] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 15:00:54] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-07 14:00:53","window_to":"2026-10-07 15:00:53"} 
[2026-10-07 15:15:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 14:15:20","window_to":"2026-10-07 15:15:20"} 
[2026-10-07 15:15:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 15:00:28","page":1} 
[2026-10-07 15:15:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 15:15:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 15:30:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 14:30:24","window_to":"2026-10-07 15:30:24"} 
[2026-10-07 15:30:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 15:15:22","page":1} 
[2026-10-07 15:30:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 15:30:27] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 15:45:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 14:45:21","window_to":"2026-10-07 15:45:21"} 
[2026-10-07 15:45:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 15:30:25","page":1} 
[2026-10-07 15:45:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 15:45:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 16:00:26] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 15:45:22","page":1} 
[2026-10-07 16:00:27] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 15:00:26","window_to":"2026-10-07 16:00:26"} 
[2026-10-07 16:00:28] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 16:00:28] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 16:00:46] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-07 15:00:46","window_to":"2026-10-07 16:00:46"} 
[2026-10-07 16:15:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 16:00:26","page":1} 
[2026-10-07 16:15:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 15:15:22","window_to":"2026-10-07 16:15:22"} 
[2026-10-07 16:15:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 16:15:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 16:30:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 15:30:24","window_to":"2026-10-07 16:30:24"} 
[2026-10-07 16:30:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 16:15:22","page":1} 
[2026-10-07 16:30:26] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 16:30:26] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 16:45:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 16:30:25","page":1} 
[2026-10-07 16:45:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 15:45:21","window_to":"2026-10-07 16:45:21"} 
[2026-10-07 16:45:23] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 16:45:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 17:00:25] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 16:45:21","page":1} 
[2026-10-07 17:00:26] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 16:00:25","window_to":"2026-10-07 17:00:25"} 
[2026-10-07 17:00:27] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 17:00:28] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 17:00:48] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-07 16:00:48","window_to":"2026-10-07 17:00:48"} 
[2026-10-07 17:15:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 17:00:25","page":1} 
[2026-10-07 17:15:23] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 16:15:23","window_to":"2026-10-07 17:15:23"} 
[2026-10-07 17:15:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 17:15:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 17:30:23] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 17:15:22","page":1} 
[2026-10-07 17:30:24] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 16:30:23","window_to":"2026-10-07 17:30:23"} 
[2026-10-07 17:30:25] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 17:30:25] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 17:45:21] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 17:30:23","page":1} 
[2026-10-07 17:45:22] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 16:45:21","window_to":"2026-10-07 17:45:21"} 
[2026-10-07 17:45:22] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 17:45:23] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 18:00:25] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 17:00:24","window_to":"2026-10-07 18:00:24"} 
[2026-10-07 18:00:26] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 17:45:21","page":1} 
[2026-10-07 18:00:28] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 18:00:28] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
[2026-10-07 18:00:45] local.INFO: TikTok webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"window_from":"2026-10-07 17:00:44","window_to":"2026-10-07 18:00:44"} 
[2026-10-07 18:15:21] local.INFO: Webhook health check recorded {"status":"unknown","success_rate":"0.00","total_requests":0,"successful_requests":0,"failed_requests":0,"avg_response_time_ms":null,"reason":"no_requests_in_window","window_from":"2026-10-07 17:15:20","window_to":"2026-10-07 18:15:20"} 
[2026-10-07 18:15:22] local.INFO: 🌐 Polling TikTok Leads API {"url":"https://business-api.tiktok.com/open_api/v1.3/page/leads/get/","since":"2026-10-07 18:00:26","page":1} 
[2026-10-07 18:15:24] local.ERROR: ❌ TikTok lead polling request failed {"status_code":404,"error_body":"Not Found"} 
[2026-10-07 18:15:24] local.INFO: TikTok lead sync completed {"fetched":0,"dispatched":0} 
